Тема: Робота з файлами та рядками С++
Доброго часу доби. Допоможіть розібратися. Даний текстовий файл. З клавіатури вводиться слово. Видалити з файлу всі рядки, які містять введене слово. Заздалегідь вдячний!
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Робота з файлами та рядками С++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Доброго часу доби. Допоможіть розібратися. Даний текстовий файл. З клавіатури вводиться слово. Видалити з файлу всі рядки, які містять введене слово. Заздалегідь вдячний!
Читати файл по рядках як масив.
Як є збіг перезаписати файл без рядка, і так в циклі до кінця файлу.
Читати файл по рядках як масив.
Як є збіг перезаписати файл без рядка, і так в циклі до кінця файлу.
Дякую, звичайно, але в мене з реалізацією проблема) Думав може хто підкаже.
Що не виходить, працювати з файлами чи з масивами?
Як і те і інше. Почитайте як читати та записувати текстові файли для початку. Коли це опануєте. Переходьте до масивів та пошуку значень в масивах.
Ну, оскільки ви не виклали жодних напрацювань, то єдине, що вам можна порадити - це прочитати підручник і написати код.
Якщо у вас щось із кодом не те - питайте.
/* Даний текстовий файл. З клавіатури вводиться слово.
// Видалити з файлу всі рядки, які містять введене слово. */
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
std::string file_name("file.txt");
std::string str_found;
std::string str;
std::cout << "enter a word";
std::cin >> str_found;
std::ifstream infile;
infile.open(file_name);
if(!infile.is_open())
{
perror("Error open");
exit(EXIT_FAILURE);
}
std::vector<std::string> lines;
while (std::getline(infile,str))
{
size_t found = str.find(str_found);
if (found == std::string::npos)
{
//std::cout << "First occurrence is " << found << std::endl;
lines.push_back(str);
}
}
infile.close();
std::ofstream outfile;
outfile.open(file_name, std::ios::out | std::ios::trunc);
for (std::size_t i;i < lines.size(); i++)
{
outfile << lines.at(i) << std::endl;
}
outfile.close();
return 0;
}
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися