Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Удалить из файла последние три строки. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ привести систему к треугольному виду http://www.cyberforum.ru/cpp-beginners/thread314214.html
Коэфиценты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду. Найти количество строк, среднее...
C++ В банк положили х рублей под 3% годовых,какой станет сумма через у лет В банк положили х рублей под 3% годовых,какой станет сумма через у лет. Решить с использованием цикла for http://www.cyberforum.ru/cpp-beginners/thread314206.html
C++ Вывести на экран те числа, которые делятся на цело на три, но не делятся нацело на пять
Для чисел от 20 до 50 вывести на экран те из них ,которые делятся на цело на три ,но не делятся нацело на пять. Помогите решить
Из кода понять функцию C++
http://vkontakte.ru/photo1346767_264351810 вот фото, препод дал сказал выяснить, что за формула или функция в этом коде, залил бы на фотосервер, но я с телефона и не смог кроме ВК никуда залить......
C++ что посоветуете для построения графических блоксхем??? http://www.cyberforum.ru/cpp-beginners/thread314180.html
что посоветуете для построения графических блоксхем???Может есть какая удобная прога, типо скопировал в неё main.c и она выдаёт рисунок!!
C++ Переполнение стека при вычислении выражения #include <iostream.h> #include <conio.h> #include <math.h> double eps=0.001; void main() { double x; cout << "Enter the x" << endl; подробнее

Показать сообщение отдельно
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
13.07.2014, 16:25
ответ на задачу Text21:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//Text21. Дан текстовый файл, содержащий более трех строк. Удалить из него последние три строки.
 
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <algorithm>
#include <iterator>
 
using namespace std;
 
 
bool remove_line(const char *filename, size_t index)
{
    std::vector<std::string> vec;
    std::ifstream file(filename);
    if (file.is_open())
    {
        std::string str;
        while (std::getline(file, str))
            vec.push_back(str);
        file.close();
        if (vec.size() < index)
            return false;
        vec.erase(vec.begin() + index);
        std::ofstream outfile(filename);
        if (outfile.is_open())
        {
            std::copy(vec.begin(), vec.end(),
                std::ostream_iterator<std::string>(outfile, "\n"));
            outfile.close();
            return true;
        }
        return false;
    }
    return false;
}
 
int main(void)
{
    const char * filename = "FILENAME.txt";
    setlocale(LC_ALL, "Russian_Russia.1251"); //русский язык в консоле
    ifstream file_in;
    file_in.open(filename);
 
    if (!file_in)
    {
        std::cerr << "Ошибка, невозможно открыть файл :" << "FILENAME.txt" << std::endl;
    }
    else
    {
        //---подсчет количества строк в файле-----------------------------------
        string s;
        int i = 0; //---количество строк
        while (file_in.peek() != EOF)
        {
            getline(file_in, s);
            i++;
        }
        //----------------------------------------------------------------------
        file_in.close();
        if (i <= 3)
        {
            cout << "В файле меньше как 3 строки!!!" << endl;
        }
        else
        {
            for (int j = (i-1); (i - j) < 4; j--)
            {
                remove_line(filename, j);
            }
            cout << "Операция успешна!" << endl;
        }
    }
    system("pause");
        return 0;
    }
Добавлено через 1 час 14 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
Param1. Описать функцию MinInt(A, N) целого типа, находящую минималь - ный элемент целочисленного массива A размера N.
С помощью этой функ - ции найти минимальные элементы массивов A, B, C размера NA, NB, NC со - ответственно.
*/
 
#include <ctime>
#include "iostream"
using namespace std;
int N;
 
int MinInt(int *dym_arr, int N)
{
 
    int min = 0xffff;
    for (int j = 0; j < N; j++)
    {
        if (min > *(dym_arr + j))
        {
            min = *(dym_arr + j);
        }
    }
        return min;
}
 
int main()
{
    int size_arr;
    srand(time(NULL));
    setlocale(LC_ALL, "Russian_Russia.1251"); //русский язык в консоле
 
    cout << "Введите размер масива: ";
    cin >> size_arr;
    int *arr = (int *)malloc(size_arr*sizeof(int));
    for (int i = 0; i < size_arr; i++)
    {
        *(arr+i) = rand() % 101; //---заполнения массива случайными числами з диапазона 0 - 100
        cout << *(arr+i) << " ";
    }
    cout << endl;
 
    cout <<"Минимальный элемент массива: "<< MinInt(arr,size_arr)<<endl;
 
    delete[] arr;
    system("pause");
    return 0;
}
Добавлено через 2 часа 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//String21.Дано целое положительное число.Вывести символы, изображающие цифры этого числа(в порядке справа налево).
#include "string"
#include "iostream"
using namespace std;
 
int main()
{
    unsigned int Number; 
    string tabl = "0123456789";
    int i = 0;
    setlocale(LC_ALL, "Russian_Russia.1251"); //русский язык в консоле
    cout << "Введите целое положительное число: ";
    cin >> Number;
    cout << "Полученный массив символов: " << endl;
 
    char *Symbol = (char *)malloc(8*sizeof(char));
    for (; Number>0; Number/= 10)
    {
        *(Symbol + i) = tabl[Number % 10];
        Number % 10;
        i++;
    }
    if (i > 8)
    {
        cout << "Число слишком большое!!!" << endl;
    }
    else
    {
        for (int j = 0; j < i; j++)
        {
            cout << *(Symbol + j) << ".";
        }
    }
    system("pause");
    return 0;
}
Можно было все это сделать используя функцию itoa или ltoa, ы нужно добавить проверку введено ли действительно число, в этом случае неплохо применить исключения try

Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
Recur10. Описать рекурсивную функцию DigitSum(K) целого типа, которая на-ходит сумму цифр целого числа K, 
не используя оператор цикла. С помо-щью этой функции найти суммы цифр для пяти данных целых чисел.
*/
 
#include "iostream"
using namespace std;
int sum = 0;
int DigitSum(unsigned int K)
{
    if (K == 0)
    {
        return sum;
    }
    else
    {
        sum = K % 10 + sum;
        K = K / 10;
        return DigitSum(K);
    }
}
 
int main()
{
    setlocale(LC_ALL, "Russian_Russia.1251"); //русский язык в консоле
    int Number = 1234567;
    DigitSum(Number);
    cout <<"Сумма цыфр числа: "<< sum << endl;
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru