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

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

Войти
Регистрация
Восстановить пароль
 
Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 377
#1

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

08.12.2013, 00:43. Просмотров 827. Ответов 5
Метки нет (Все метки)

Необходимо удалить самую короткую строку из текстового файла. Данные из файла я считал. Переписал в новый файл. Проблема в поиске и удалении этой самой строки(самой короткой из всех). Ниже код:
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");
//???
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 00:43     Удалить строку из текстового файла
Посмотрите здесь:

C++ Удалить все гласные буквы из текстового файла
Как занести содержание текстового файла в одну строку? C++
Функция, возвращающая k-ю строку текстового файла C++
C++ Из текстового файла удалить все слова, не соответствующие шаблону
Считывание из текстового файла в строку C++
Распечатать строку с заданным номером из текстового файла C++
C++ Из текстового файла распечатать строку с заданным номером
C++ Удалить из текстового файла все однобуквенные слова
Удалить одинаковые слова из текстового файла C++
Удалить первые 16 строк текстового файла C++
Определить самую короткую строку текстового файла C++
C++ С текстового файла прочитать строку слов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Сообщений: 377
08.12.2013, 01:47  [ТС]     Удалить строку из текстового файла #3
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
Сообщений: 377
08.12.2013, 02:04  [ТС]     Удалить строку из текстового файла #5
Alex566, как узнать количество строк?

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

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