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

Дан текстовый файл. Извлечь из файла цифры записать их в массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Casl
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 5
18.12.2012, 21:50     Дан текстовый файл. Извлечь из файла цифры записать их в массив #1
Дан текстовый файл .
В файле находятся строки 5-6 строк .
В каждой строке есть цифры .
Извлечь из файла цифры записать их в массив , даже если это нули не потерять их .
Полученный массив преобразовать в числовой , не потеряв нули (если это возможно)
Пример :
Приветствие назначено на 21:30
Обед по расписанию 15:00

Извлечь только цифры 21301500 . Забить в массив и не потерять нули .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 21:50     Дан текстовый файл. Извлечь из файла цифры записать их в массив
Посмотрите здесь:

C++ Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
Дан текстовый файл, содержащий целые числа. В каждой строке этого файла найти сумму наибольшего и наименьшего элементов и записать их в другой C++
C++ Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только четные из них
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро C++
C++ Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
19.12.2012, 07:47     Дан текстовый файл. Извлечь из файла цифры записать их в массив #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char buf[1000],buf1;
int i=0;
while(feof(file)){
     fscanf(file,"%c",&buf1)
     if(buf1>='0'&&buf<='9')
         buf[i++]=buf1;
}
buf[i]='\0';
int *mas=new int[strlen(buf)];
cout<<endl;
for(int i=0;i<strlen(buf);i++){
    mas[i]=buf[i]-'0';
    cout<<mas[i]<<endl;
}
Casl
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 5
19.12.2012, 08:56  [ТС]     Дан текстовый файл. Извлечь из файла цифры записать их в массив #3
Извини , непонятно мне в коде 2 строки .
while(feof(file)) <--- что она значит. как бы вайл это цикл foef мне тоже знакомо считывание файла пока он не закончится .
if((buf1>='0'/)&&(buf<='9')) а в этой строке пишет несовместимые типы операндов . char .

И как файл загрузить что бы он с ним работал или куда это прописать ?


Заранее спасибо
Salty_Sugar
 Аватар для Salty_Sugar
26 / 26 / 1
Регистрация: 02.04.2012
Сообщений: 140
19.12.2012, 09:14     Дан текстовый файл. Извлечь из файла цифры записать их в массив #4
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 <fstream>
#include <iostream>
 
using namespace std;
 
void main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
 
char str[100];
int n;
char nums[10] = {'0','1','2','3','4','5','6','7','8','9'}; //массив чисел для сравнения
 
while( !feof(stdin) ) // пока не конец файла
{
gets(str); // читаем строку
n = strlen(str); //находим длинну строки
 
for( int i = 0; i < n; i++ )
for( int j = 0; j < 10; j++ ) if( str[i] == nums[j] ) cout << str[i]; //в цикле сравниваем элементы массива str[] и, если равен, то выводим в файл
}
}
Casl
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 5
19.12.2012, 09:23  [ТС]     Дан текстовый файл. Извлечь из файла цифры записать их в массив #5
Просто огромное !! Гигантское СПАСИБО !!!!!!!!!!
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
19.12.2012, 16:17     Дан текстовый файл. Извлечь из файла цифры записать их в массив #6
Цитата Сообщение от Casl Посмотреть сообщение
while(feof(file)) <--- что она значит. как бы вайл это цикл foef мне тоже знакомо считывание файла пока он не закончится .
feof возвращает всякие разные значения и когда указатель дойдет до конца файла возвратит 0.
соответственно

Цитата Сообщение от Casl Посмотреть сообщение
if((buf1>='0'/)&&(buf<='9')) а в этой строке пишет несовместимые типы операндов . char .
ну тут небольшой мой косяк, но могли бы и сами догадаться
C++
1
 if(buf1>='0'&&buf<='9')
buf1 является массивом а buf символом вот он и ругается на buf<='9'
C++
1
 if(buf1>='0'&&buf1<='9')
ну про файл вам объяснили уже.

Цитата Сообщение от Salty_Sugar Посмотреть сообщение
C++
1
2
for( int i = 0; i < n; i++ )
for( int j = 0; j < 10; j++ ) if( str[i] == nums[j] ) cout << str[i];
трудоемкий процесс достаточно O(n*10) в среднем конечно будет O(n*5) но тоже не мало проще будет смотреть попадает ли символ в диапазон значений цифр из таблицы ASCII
Yandex
Объявления
19.12.2012, 16:17     Дан текстовый файл. Извлечь из файла цифры записать их в массив
Ответ Создать тему
Опции темы

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