Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. - вопрос №205186

#include <iostream><br />#include <math.h> <br /> <br />using std::cin;<br />using std::cout;<br />using std::endl;<br /><br /> int main (int argc, char** argv){<br /> std::cout << "my_cat: Usage: ./my_cat input_file output_file [...]" << std::endl;<br /> return (EXIT_SUCCESS);<br /> }<br /> std::string my_string;<br /> std::ifstream ifs(argv[1], std::ifstream::in);<br /> std::ofstream ofs(argv[2], std::ofstream::out);<br />if (ifs.is_open()) {<br /> while (getline(ifs, my_string))<br /> if (strcspn(my_string.c_str(), "0123456789") != my_string.size()) {<br /> if (!ifs.eof())<br /> ofs << my_string << std::endl;<br /> else<br /> ofs << my_string;<br /> }<br /> }<br /> else<br /> std::cout << "my_cat: " << argv[1] << ": No such file or directory" << std::endl;<br /> return (EXIT_SUCCESS);<br />}std::ifstream ifs(argv[1], std::ifstream::in)-вот на эту строку указывает ошибку!
17.02.12
2 ответа

Лучший ответ по мнению автора

если немного переформатировать, то будет вот так

int main (int argc, char** argv)

{
    std::cout << «my_cat: Usage: ./my_cat input_file output_file [...]» << std::endl;
    return (EXIT_SUCCESS);
}

по всем законам функция main заканчивается

и вот на эту строку

  std::string my_string;

компилятор уже должен ругаться

вообще было бы не плохо:

1 — форматировать листинг с номерами строк, тогда проще указывать на конкретные строки

2 — указать какой именно компилятор используете. VS2010 этот фрагмент не поняла с ходу, а C++ не совсем мой профиль, что бы по коду угадать что надо подключить в проект и вообще совместим ли он с MS VC++ win32 или managed

3 — сообщение компилятора об ошибке вообще то обычно содержит всю или почти всю необходимую информацию. надо приводить полностью сообщение об ошибке

17.02.12
Лучший ответ по мнению автора

Другие ответы

вот в таком виде компилируется ))

с точки зрения задания логику не проверял, но на первый взгляд вполне можеь работать

но на данный момент естественно выходит ДО попытки работать с файлами, смотрите внимательно в этом месте

//if(???)

тут должно было бы быть условие проверки наличия двух входных параметров, если нет — выход, иначе — тогда уже обработка

 

 #include "stdafx.h" // про этот файл не знаю точно универсайльный ли он?#include "fstream"<br #include "iostream"<br #include "string"<br <br //#include "math.h"<br <br using namespace std;<br <br int main (int argc, char** argv)<br {<br //if(???) // тут проверять входные параметры<br {<br cout << "my_cat: Usage: ./my_cat input_file output_file [...]" << endl;<br return (EXIT_SUCCESS);<br }<br string my_string;<br ifstream ifs(argv[1], ifstream::in);<br ofstream ofs(argv[2], ofstream::out);<br if (ifs.is_open())<br {<br while (getline(ifs, my_string))<br if (strcspn(my_string.c_str(), "0123456789") != my_string.size())<br {<br if (!ifs.eof())<br ofs << my_string << std::endl;<br else<br ofs << my_string;<br }<br }<br else<br cout << "my_cat: " << argv[1] << ": No such file or directory" << endl;<br return (EXIT_SUCCESS);<br }
17.02.12
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store