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

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

Войти
Регистрация
Восстановить пароль
 
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
#1

Работа с текстовыми файлами - C++

21.06.2010, 01:34. Просмотров 568. Ответов 2
Метки нет (Все метки)

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

Помогите пожалуйста с этим заданием, мозг уже совсем не работает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2010, 01:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с текстовыми файлами (C++):

Работа с текстовыми файлами - C++
Помоготи , пожалуйста : Создать текстовый файл и выполнить обработку текста в файле ... Пример : 2) Создать текстовый файл,...

Работа с текстовыми файлами - C++
3)Разработать программу, которая выполняет следующие действия: создает входной поток для построчного чтения из внешнего файла и выходной...

С++ работа с текстовыми файлами - C++
Здравствуйте. Я только начинаю знакомиться с средой C++, учусь работать с файлами, самое базовое типа ввода и вывода данных. Так вот, может...

Работа с текстовыми файлами - C++
Помогите выполнить задание: Написать консольное приложение, реализующее полученный вариант задания, используя конструкции и соответствующие...

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

Работа с текстовыми файлами - C++
Дан текстовый файл. Напечатать все строки, длина которых равна данному числу.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
21.06.2010, 05:20 #2
отктываем два файла, один - на запись, другой - на чтение. чиатем по одному символу из файла на чтение, если символ пробел или табуляция то значит далее следует слово или цифра. считываем еще символы и, если это цифры, кладем их в буфер, как только встретили "нецифру" то смотрим: если это пробел или табуляция - значит мы считали число (оно в буфере) и его можно выводить в выходной файл, если это не пробел и не набуляция (и не знак припенания и не конец файла) то мы считали непойми что (слово с несколькими цифрами впереди) не будем записывать буфер в выходной фалй. Сбрасываем буфер и читаем из входного файла дальше.
буфером может быть масив char, скажем, из 30 элементов.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.06.2010, 12:23 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define MAXWORD  100   /* максимальная длина слова */
 
 
int main(void) /* ANSI C89 */
{
    FILE *ifp, *ofp;
    int c;
    char word[MAXWORD], *ptr;
    enum { NO, YES } inword = NO;
    
    
    ifp = stdin;
    
    ofp = fopen("output.txt", "w");
    
    
    /* проверить, открылись ли файлы */
    
    
    while ((c = getc(ifp)) != EOF) {
        
        c = (unsigned char) c;
        
        if (ispunct(c) == 0 && isspace(c) == 0) {
            
            if (inword == NO) {
                
                inword = YES;
                
                ptr = word;
            
            }
        
            *ptr++ = c;
            
            *ptr = '\0';
        
        }
        
        if (ispunct(c) != 0 || isspace(c) != 0) {
            
            if (inword == YES) {
 
                inword = NO;
        
                for (ptr = word;
                     isdigit(*ptr) != 0 && *ptr != '\0';
                     ptr++)
                    ;
                
                if (*ptr == '\0') {
                
                    printf(".%s." "\n", word);
                
                    fprintf(ofp, " %s", word);
            
                }
            
            }
        
        }
        
    }
    
    
    fclose(ofp);
    
    
    return EXIT_SUCCESS;
}
здесь вывод
Код
[guest@station src]$ echo aaaa3a bbb2 333 1 a1 1a 3 | ./test
.333.
.1.
.3.
[guest@station src]$ cat output.txt
 333 1 3[guest@station src]$
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2010, 12:23
Привет! Вот еще темы с ответами:

работа с текстовыми файлами - C++
подскажите пожалуйста как решить эти задачи методом для начинающего или где можно взять литературу по строкам пожалуйста заранее...

Работа с текстовыми файлами - C++
Мне нужно разработать программу, выводит на экран по желанию пользователя: 1) N первых строк файла; 2) N последних строк файла; 3) вывести...

Работа с текстовыми файлами - C++
Я пишу свой календарь,и у меня задание считать из текстового файла .txt информацию.В текстовом файле записана дата в формате day.month.year...

Работа с текстовыми файлами - C++
Дан файл f компонентами которого являются целые числа.В файл g переписать все неположительные компонетны f кратные 8.


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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