Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94

Удаление нужной строчки из файла

27.02.2013, 14:59. Показов 1304. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите пожалуйста, как удалить нужную строчку из файла?

Строчка является ключом.

Например:
Содержание файла:

line1=4
line2=1
line3=5

Нужно найти line2 удалить;

Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2013, 14:59
Ответы с готовыми решениями:

Удаления нужной строчки из файла
Доброе время суток ! Мне понадобилась функция, которая по двум параметрам (1ый и 2ой символ строчки ) находит нужную строчку и удаляет ее ....

Удаление подстрочки из строчки
Здарова, мужики! Я делаю следующее задание: Нужно определить количество вхождений подстрочки в строчку и удалить все вхождения. Я...

Запись в файл. удаление последней строчки
Записываю файл вектор построчно: myFile_tarif.open("Tarif.txt",std::ios_base::out | std::ios_base::trunc); if...

7
 Аватар для Mysterion777
49 / 49 / 13
Регистрация: 11.01.2013
Сообщений: 198
27.02.2013, 15:15
//создает новый файл output.txt в котором нет такой строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
 
int main()
{
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    string s;
    while(cin>>s)
    {
     if(s=="line2=2"){}
     else
     cout<<s<<endl;             
                }
    return 0;
}
0
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
27.02.2013, 15:23  [ТС]
Нет, нужно удалить строчку по ключу line2, а = не трогать и перезаписать в этот же файл.
0
 Аватар для Mysterion777
49 / 49 / 13
Регистрация: 11.01.2013
Сообщений: 198
27.02.2013, 15:44
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
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
 
int main()
{FILE *f;
f=fopen("input.txt", "r");
    
//  freopen("output.txt", "w", stdout);
    char s[100][100];int i=0;
    while(fgets(s[i],100,f))
    i++;
    fclose(f);
    f=fopen("input.txt", "w");
    for(int j=0;j<i;j++){
 if(s[j][0]=='l'&&s[j][1]=='i'&&s[j][2]=='n'&&s[j][3]=='e'&&s[j][4]=='2'){}
 else
 fputs(s[j],f);    
}
            
                
    return 0;
}
ключ в каком формате? и есть ли пробел перед =?
или просто нужно удалить i-ую строчку где i задается с клавиатуры?
0
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
28.02.2013, 07:23  [ТС]
Нету пробела перед =, просто, допустим вводишь текст, и проверяешь, есть ли такой ключ (ключ должен совпадать с введенным текстом), и удаляешь его.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 07:33
Цитата Сообщение от Slava_ Посмотреть сообщение
и удаляешь его.
Его кого? Ключ в файле? Строку в файле, в которой есть этот ключ? Часть строки в файле равную ключу? И что куда перезаписать? На примере объясните. Например, в файле то-то, вводится с клавиатуры то-то, после работы кода в файле должно быть то-то.
1
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
28.02.2013, 08:32  [ТС]
Есть ключ со значением: line2=3, при вводе с клавиатуры текста идет чтение файла и проверка: совпадает ли введенный текст с самим КЛЮЧОМ, если текст совпадает, то удаляется вся строчка, т.е. этот ключ и его значение. Потом все оставшееся перезаписывается обратно в этот же файл, уже без этой строчки.

Весь смысл в том, что нужно просто удалить нужную строчку из файла, ориентируясь на ключ и все.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 09:01
Вся строка в файле состоит из одного ключа? Т.е., с клавиатуры вводится строка, потом идёт поиск в файле такой строки, если найдена, то файл переписывается уже без этой строки?

Добавлено через 15 минут
Если так, то:
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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
 
 
int main()
{
   fstream f("text.txt");
   if (!f.is_open()) cout << "Error!" << endl;
   else
   {
       vector <string> vecstr;
       string str;
       string temp;
   
       cin >> str;
   
       while (!f.eof())
       {
            getline(f, temp);
            if (temp != str)
                vecstr.push_back(temp);
       }
 
       f.close();
   
       f.open("text.txt", ios::out);
 
       for (int i = 0; i < vecstr.size(); i++)
            f << vecstr[i] << '\n';
 
       f.close();
   }
 
   system("pause");
   return 0;
}
Если же введённый ключ - это часть строки в файле, то:
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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
 
 
int main()
{
   fstream f("text.txt");
   if (!f.is_open()) cout << "Error!" << endl;
   else
   {
       vector <string> vecstr;
       string str;
       string temp;
   
       cin >> str;
   
       while (!f.eof())
       {
            getline(f, temp);
            if (temp.find(str) == -1)
                vecstr.push_back(temp);
       }
 
       f.close();
   
       f.open("text.txt", ios::out);
 
       for (int i = 0; i < vecstr.size(); i++)
            f << vecstr[i] << '\n';
 
       f.close();
   }
 
   system("pause");
   return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2013, 09:01
Помогаю со студенческими работами здесь

Удаление нулевой(-ых) строчки и столбца из матрицы
Доброго времени суток! Помогите написать программу, которая проверяла бы матрицу на нулевую строчку и столбец, и, если таковые...

Считывание из файла в нужной кодировке
Почему при считывание файла выдает кракозябры ? Содержимое файла: char *text; ifstream read; ...

Удаление строки из файла\либо удаление самого файла.
День добрый, вот функция(используемые переменные объявленны ранее): void delete_cruise() { FILE *fout; ...

Удаление нужной строчки из комбобокс
Как из КомбоБокс удалить нужную строку

Удаление строчки из файла по номеру
ребят пишу функцию которая удаляет строчку или строчки из файла по номеру function DEL { echo &quot;Выберите строку которую...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru