Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
белая муха
 Аватар для белая муха
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 13
17.02.2012, 00:44     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. #1
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
#include <iostream>
#include <math.h> 
 
using std::cin;
using std::cout;
using std::endl;
 
 int main (int argc, char** argv){
    std::cout << "my_cat: Usage : ./my_cat input_file output_file [...]" << std::endl;
    return (EXIT_SUCCESS);
  }
  std::string my_string;
  std::ifstream ifs(argv[1], std::ifstream::in);
  std::ofstream ofs(argv[2], std::ofstream::out);
  if (ifs.is_open()) {
    while (getline(ifs, my_string))
      if (strcspn(my_string.c_str(), "0123456789") != my_string.size()) {
          if (!ifs.eof())
            ofs << my_string << std::endl;
          else
            ofs << my_string;
        }
  }
  else
    std::cout << "my_cat: " << argv[1] << ": No such file or directory" << std::endl;
  return (EXIT_SUCCESS);
}
 Комментарий модератора 
Код выделяем тегами!


Добавлено через 1 час 9 минут
Цитата Сообщение от белая муха Посмотреть сообщение
Код выделяем тегами!
разжуй будь добр, я не понимаю!
std::ifstream ifs(argv[1], std::ifstream::in);-на эту строку выдает ошибку!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 00:44     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
Посмотрите здесь:

переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её порядковый номер(с++) C++
C++ Дан текстовый файл. Удалить из него все пустые строки
C++ Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом каждое сочетание букв “no” на “on”
Дан текстовый файл F. Получить все его строки, содержащие более 60 символов. На С++ C++
дан текстовый файл. получить все его строки, содержащие более 20 символов, отличных от пробелов. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.02.2012, 02:20     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. #2
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
40
41
42
43
44
45
46
#include <iostream>
#include <string>
#include <fstream>
 
#define PROGRAM_NAME argv[0]
#define INPUT_NAME argv[1]
#define OUTPUT_NAME argv[2]
 
int main(int argc, char ** argv){
    if ( argc < 3 ){
        std::cerr << "Usage: " << PROGRAM_NAME << " input_file_name output_file_name" << std::endl;
        return 1;
    }
 
    std::ifstream ifs(INPUT_NAME);
    if ( ! ifs.is_open() ){
        std::cerr << PROGRAM_NAME << ": can't open file " << INPUT_NAME << " for input!" << std::endl;
        return 1;
    }
 
    std::ofstream ofs(OUTPUT_NAME);
    if ( ! ofs.is_open() ){
        std::cerr << PROGRAM_NAME << ": can't open file " << OUTPUT_NAME << " for output!" << std::endl;
        return 1;
    }
 
    std::string buf;
    while ( std::getline(ifs, buf) ){
        if ( buf.find_first_of("0123456789") != std::string::npos ){
            if ( ! (ofs << buf << std::endl) ){
                std::cerr << PROGRAM_NAME << ": can't write to " << OUTPUT_NAME << std::endl;
                return 1;
            }
        }
    }
    if ( ifs.bad() ){
        std::cerr << PROGRAM_NAME << ": can't read from " << INPUT_NAME << std::endl;
        return 1;
    }
 
    ifs.close();
    ofs.close();
    std::cerr << PROGRAM_NAME << ": just finished." << std::endl;
 
    return 0;
}
белая муха
 Аватар для белая муха
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 13
17.02.2012, 02:37  [ТС]     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. #3
он проверил написал что сделано, а вот как с ним работать? при запуске он открывает и тут же сворачивает)))))
огромная благодарность за помощь!!!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.02.2012, 02:49     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. #4
Цитата Сообщение от белая муха Посмотреть сообщение
он проверил написал что сделано, а вот как с ним работать? при запуске он открывает и тут же сворачивает)
Программа должна запускаться из консоли с двумя параметрами: первый - имя файла ввода (должен быть создан заранее и по возможности содержать строки с числами), второй - имя файла вывода (это в который будут строки с числами сохраняться).
Yandex
Объявления
17.02.2012, 02:49     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
Ответ Создать тему
Опции темы

Текущее время: 16:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru