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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
белая муха
 Аватар для белая муха
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 13
#1

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

17.02.2012, 00:44. Просмотров 871. Ответов 3
Метки нет (Все метки)

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++
C++ Дан текстовый файл. Перепишите его в выходной файл, удалив все знаки препинания
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро C++
C++ Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв и пробела
Дан текстовый файл f. Переписать текст в файл g, удалив все группы букв s (s передается параметром) C++
C++ Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы...
C++ Файл: Переписать один текстовый файл в другой при условии, что все двойные пробелы буду заменены одинарными
C++ Даны текстовый файл и строка s. Получите все строки файла f, содержащие в качестве фрагмента заданную строку s

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
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
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
17.02.2012, 02:49     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. #4
Цитата Сообщение от белая муха Посмотреть сообщение
он проверил написал что сделано, а вот как с ним работать? при запуске он открывает и тут же сворачивает)
Программа должна запускаться из консоли с двумя параметрами: первый - имя файла ввода (должен быть создан заранее и по возможности содержать строки с числами), второй - имя файла вывода (это в который будут строки с числами сохраняться).
Yandex
Объявления
17.02.2012, 02:49     Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
Ответ Создать тему
Опции темы

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