Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Записать в выходной файл все строки входного файл


Автор: Алешка 21.11.2011, 16:47
задание такое: 
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента строку S.  
Буду очень благодарен.

Автор: bsa 21.11.2011, 17:53
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: t_gran 22.11.2011, 08:10
Код

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char** argv)
{
   if (argc != 3)
   {
      cout << "Usage: program FILENAME \"STRLINE\"" << endl;
      return 0;
   }
   
   ifstream inputFile(argv[1]);

   if (!inputFile.is_open())
   {
      cout << "error: file \"" << argv[1] << "\" not open ..." << endl;
      return 1;
   }
   
   string outFileName = string("out_") + argv[1];
   ofstream outFile(outFileName.c_str());
   
   if (!outFile.is_open())
   {
      cout << "error: output file \"" << outFileName << "\" not open ..." << endl;
      inputFile.close();
      return 2;
   }
   
   string buff;
   while (inputFile.good())
   {
      getline(inputFile, buff);
      if (buff.find(argv[2]) != string::npos)
      {
         outFile << buff << endl;
         // cout << buff << endl;
      }
   }
   
   outFile.close();
   inputFile.close();
   
   return 0;
}


Формат вызова:
Код

$ program.exe <имя файл>  <"текстовая строка">

На выходе получаем файл: out_<имя файла>

Бинарник с исходником ниже.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)