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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Ernar
Сообщений: n/a
#1

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

06.06.2011, 16:09. Просмотров 1366. Ответов 1
Метки нет (Все метки)

lIUDI POMAGITE POJALUIUSTA REWIT ETU ZADACHU!!!!
 Комментарий модератора 
В теме должна быть только одна задача!

Text21º. Дан текстовый файл, содержащий более трех строк. Удалить из него последние три строки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из файла последние три строки. (C++):

Дан текстовый файл, содержащий более трех строк. Удалить из него три последние строки - C++
Дан текстовый файл, содержащий более трех строк. Удалить из него три последние строки.

Вывести первые и последние три символа строки - C++
Дана строка. Вывести первые три символа и последний три символа, если длина строки больше 5. Иначе вывести первый символ столько раз,...

Удалить последние слова из строки - C++
Всем добрый день! Перечитал про множество функций для работы со строками. Нашел что то похожее для своей задачи puts(&str); где &str...

Дано слово. Переставить первые три и последние три буквы - C++
Привет всем. Помогите пожалуйста кто может решить две задачи по C++. Сам пробовал решить_но безуспешно. 1.Дано слово. Переставить...

Удалить из каждого слова исходной строки две последние буквы - C++
Пожалуйста помогите, дана строка символов. Удалить из каждого слова исходной строки две последние буквы

Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла - C++
Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла. === Помогите,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
13.07.2014, 16:25 #2
ответ на задачу 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2014, 16:25
Привет! Вот еще темы с ответами:

В шестизначном числе поменять местами первые и последние три цифры - C++
Помогите пожалуйста.

Строки и структуры. Cчитать из текстового файла три предложения и вывести их в обратном порядке - C++
Написать программу, которая считывает текст из файла и обраба-тывает его. Обработку текстовой информации нужно организовать с...

Найти те трехзначные числа, в состав которых входят последние три цифры их квадрата - C++
Найти те трехзначные числа, в состав которых входят последние три цифры их квадрата.

Найти последние три числа кратные четырем в диапазоне от 1 до N. Вычислить сумму этих чисел - C++
Найти последние три числа кратные четырем в диапазоне от 1 до N. Вычислить сумму этих чисел.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru