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

Отфильтровать данные из текстового файла, оставляя только символы цифр - C++

Восстановить пароль Регистрация
 
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
15.01.2014, 17:50     Отфильтровать данные из текстового файла, оставляя только символы цифр #1
Помогите написать программу в C++
Тема: Работа с файлами
Написать программу, которая фильтрует данные из текстового файла, оставляя только символы цифр (0 - 9)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 17:50     Отфильтровать данные из текстового файла, оставляя только символы цифр
Посмотрите здесь:

Лишние символы при копирование текстового файла C++
Данные из текстового файла записать в бинарный файл C++
C++ Вывод на экран данные из текстового файла
Прочитать из текстового файла символы, вычисть из их кодов 8 а затем умножить на 2 C++
Считать из текстового файла только определенные строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.01.2014, 14:08     Отфильтровать данные из текстового файла, оставляя только символы цифр #2
Что значит: "фильтрует"? Что значит: "оставляет"? При выводе выводит только символы цифр? Файл переписывает, оставляя только символы цифр?
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
19.01.2014, 14:11  [ТС]     Отфильтровать данные из текстового файла, оставляя только символы цифр #3
Файл не переписывает.
Просто фильтрует файл
Сперва он выводит что содержиться в файле
только после этого фильтрует и оставляет цифры не переписывая файл только оставляя на файле.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.01.2014, 14:31     Отфильтровать данные из текстового файла, оставляя только символы цифр #4
Цитата Сообщение от Тимкин Николай Посмотреть сообщение
только после этого фильтрует и оставляет цифры
Где фильтрует? И опишите, как вы представляете процесс фильтрации.
R1987
 Аватар для R1987
13 / 13 / 2
Регистрация: 09.12.2012
Сообщений: 63
19.01.2014, 14:31     Отфильтровать данные из текстового файла, оставляя только символы цифр #5
Тимкин Николай, так что ли?
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main () {
  int length;
  char * buffer;
 
  ifstream is;
  is.open ("test.txt", ios::binary );
 
  is.seekg (0, ios::end);
  length = is.tellg();
  is.seekg (0, ios::beg);
 
  // allocate memory:
  buffer = new char [length];
 
  // read data as a block:
  is.read (buffer,length);
  is.close();
 
  cout << "Original text:" << endl;
  cout.write (buffer,length);
  cout << endl;
 
 
  cout << "Digits:" << endl;
  for(int i=0; i<length; i++)
  {
    if(isdigit(buffer[i])) cout << buffer[i];
  }
  cout << endl;
 
  delete[] buffer;
  system("Pause");
  return 0;
}
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
19.01.2014, 14:44  [ТС]     Отфильтровать данные из текстового файла, оставляя только символы цифр #6
Да так
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.01.2014, 14:47     Отфильтровать данные из текстового файла, оставляя только символы цифр #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
#include <algorithm>
#include <functional>
 
using input = std::istreambuf_iterator<char>;
 
int main()
{
   std::ifstream ifs("D:/file.txt");
   if (!ifs.is_open())
      return 1;
   std::string buffer {input(ifs), input()};
 
   std::ofstream ofs("D:/file(only digits).txt");
 
   buffer.erase(std::remove_if(buffer.begin(), buffer.end(), std::not1(std::ref(isdigit))), buffer.end());
   ofs << buffer;
 
   return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Тимкин Николай Посмотреть сообщение
не переписывая файл только оставляя на файле
это как?
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
19.01.2014, 14:48  [ТС]     Отфильтровать данные из текстового файла, оставляя только символы цифр #8
не меняя содержимое в файле
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.01.2014, 14:55     Отфильтровать данные из текстового файла, оставляя только символы цифр #9
Цитата Сообщение от Тимкин Николай Посмотреть сообщение
Да так
Чтобы так, то не нужно буфер создавать. Он, собственно, зачем? Чтобы два раза вывести содержимое файла (во втором случае только цифры)? Можно просто два раза вывести содержимое файла (второй раз только цифры).
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
19.01.2014, 14:57  [ТС]     Отфильтровать данные из текстового файла, оставляя только символы цифр #10
А можешь обьяснить как это сделать??
R1987
 Аватар для R1987
13 / 13 / 2
Регистрация: 09.12.2012
Сообщений: 63
19.01.2014, 15:03     Отфильтровать данные из текстового файла, оставляя только символы цифр #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Можно просто два раза вывести содержимое файла
Вы хотите сказать что читать два раза файл более эффективно чем считать его один раз в буфер а потом работать с буфером. Можете пояснить почему так?
alsav22
19.01.2014, 15:42
  #12

Не по теме:

Цитата Сообщение от R1987 Посмотреть сообщение
Вы хотите сказать что читать два раза файл более эффективно чем считать его один раз в буфер а потом работать с буфером. Можете пояснить почему так?
Это палка о двух концах. Смотря какая работа с буфером. Тут работы никакой нет, просто вывод на консоль, это и прямо из файла можно сделать. Если бы файл переписывать или создавать буфер с одними цифрами, тогда да, а так... Насчёт эффективности: а память под буфер занимать?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 00:22     Отфильтровать данные из текстового файла, оставляя только символы цифр
Еще ссылки по теме:

C++ Не выводятся данные из текстового файла
C++ Считать данные текстового файла в массив
Исключить из заданного текстового файла символы-разделители (пробел, символ табуляции), расположенных в середи C++

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

Или воспользуйтесь поиском по форуму:
RinKaganime
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 3
30.01.2014, 00:22     Отфильтровать данные из текстового файла, оставляя только символы цифр #13
честно говоря хз
Yandex
Объявления
30.01.2014, 00:22     Отфильтровать данные из текстового файла, оставляя только символы цифр
Ответ Создать тему
Опции темы

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