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

Удалить строку из текстового файла - C++

Восстановить пароль Регистрация
 
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
08.12.2013, 00:43     Удалить строку из текстового файла #1
Необходимо удалить самую короткую строку из текстового файла. Данные из файла я считал. Переписал в новый файл. Проблема в поиске и удалении этой самой строки(самой короткой из всех). Ниже код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string line, str;
int s,k,i;
ifstream f1("123.txt");
ofstream f2("1234.txt");
    
if(!f1)
    cout<<"Не удалось открыть файл"<<endl;  
 
else{
    cout<<"Используемый файл содержит следующий текст:\n"<<endl;
        
//считываем и отображаем текст исходного файла и параллельно копируем его в новый текстовый файл
while(!f1.eof()){
    getline(f1,line);
    f2<<line<<endl;
    cout<<line<<endl;
}
f1.close();
        
//получаем самую короткую строку в файле
ifstream f2("1234.txt");
//???
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.12.2013, 01:27     Удалить строку из текстового файла #2
Считывая и сразу записывая у вас не выйдет. Нужно сначала считать строки в массив, найти номер самой короткой строки (допустим min) и записать строки обратно в файл с условием if(i!=min) где i - номер текущей записываемой строки.
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
08.12.2013, 01:47  [ТС]     Удалить строку из текстового файла #3
Alex566, как получить номер строки?
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.12.2013, 01:53     Удалить строку из текстового файла #4
Допустим вы считали содержимое в массив строк - text. Переменная min - номер самой короткой строки по дефолту 0. Объявляете цикл for(int i=1;i<количество_строк;i++) и в нем оператор ветвления if(strlen(text[i])<strlen(text[min])) min=i.
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
08.12.2013, 02:04  [ТС]     Удалить строку из текстового файла #5
Alex566, как узнать количество строк?

Добавлено через 3 минуты
всё, уже понял
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.12.2013, 02:06     Удалить строку из текстового файла #6
Посчитать при считывании. Добавить интовую переменную n - количество строк по дефолту 0. В конце цикла считывания строки добавить n++;
Yandex
Объявления
08.12.2013, 02:06     Удалить строку из текстового файла
Ответ Создать тему
Опции темы

Текущее время: 09:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru