Технологии

Решено

Дан текстовый файл 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)-вот на эту строку указывает ошибку!

февраль 16, 2012 г.

  • Всего ответов: 2

  • Константин Жук - аватарка

    Константин Жук

    1-й в

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

    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 — сообщение компилятора об ошибке вообще то обычно содержит всю или почти всю необходимую информацию. надо приводить полностью сообщение об ошибке

    февраль 16, 2012 г.
    Ответ понравился автору
    Лучший ответ по мнению автора
  • Константин Жук - аватарка

    Константин Жук

    1-й в

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

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

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

    //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, 2012 г.

Похожие вопросы

счетчик нажатий на кнопку.

декабрь 11, 2011 г.

Технологии