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

Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
14.04.2012, 09:03     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #1
Нужна Программа, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один",..."девять", начиная каждое предложение с новой строки

Добавлено через 36 секунд
помогите разобраться...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 09:03     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами
Посмотрите здесь:

Считать текст из файла и вывести его на экран, заменив цифры от 0 до 9 на слова C++
C++ считать текст из файла и вывести на экран все его предложения в обратном порядке
C++ Файлы: считать текст из файла и вывести его на экран, заменяя...
Считать текст из файла и вывести все его предложения в обратном порядке C++
Считать текст из файла и вывести на экран только предложения начинающиеся с тире C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
14.04.2012, 10:52     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
    FILE* fp = NULL; char* filename = "d:\\in.txt";
    if ((fp = fopen(filename,"r")) == NULL)
        printf("Unable to open file %s\n",filename);
    
    static char ch = '\0';
    static char* digits[] = { "zero", "one", "two" ,"three", "four", 
        "five", "six", "seven", "eight", "nine" }; 
    while ((ch = fgetc(fp)) != EOF)
        if (isdigit(ch)) printf("%s",digits[ch - '0']);
        else if (ch == '.' || 
            ch == '!' || ch == '?') printf("\n");
        else printf("%c",ch);
in.txt
Countdown from one to eight - 1 2 3 4 5 8. Let's output ascending numbers - 9,8,7,6,5,4,3,2,1

Output:
Countdown from one to eight - one two three four five eight
Let's output ascending numbers - nine,eight,seven,six,five,four,three,two,one
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
15.04.2012, 15:19  [ТС]     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #3
а как полностью программа будет выглядеть? что-то у меня не работает
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
15.04.2012, 15:25     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #4
То есть как не работает? Сначало создай файл типа d:\\in.txt и заполние его
текстом из предыдущего поста. Потом скомпилируй код ниже, и запусти.
Работает? Дай ответ.

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <cctype>
 
int main(void)
{
    FILE* fp = NULL; char* filename = "d:\\in.txt";
    if ((fp = fopen(filename,"r")) == NULL)
        printf("Unable to open file %s\n",filename);
    
    static char ch = '\0';
    static char* digits[] = { "zero", "one", "two" ,"three", "four", 
        "five", "six", "seven", "eight", "nine" }; 
    while ((ch = fgetc(fp)) != EOF)
        if (isdigit(ch)) printf("%s",digits[ch - '0']);
        else if (ch == '.' || 
            ch == '!' || ch == '?') printf("\n");
        else printf("%c",ch);
 
    _getch();
 
    return 0;
}
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
16.04.2012, 14:10  [ТС]     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #5
Работает! Только можешь объяснить как функции работают?
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
16.04.2012, 15:04     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #6
В цикле при помощи функции ch = fgetc(fp) получаем каждый символ
и записываем в переменную ch. Далее сравниваем при помощи ф-ции
isdigit(ch) == true, если значение переменной ch - цифра, вычисляем
индекс слова "zero" - "nine" в массиве digits: ch - '0', и выводим
соответствующее слово на экран, далее если ch - '.','?','!', то печатаем
символ перехода на другую строку "\n". Во всех других случаях печатаем
сам символ ch.
Pro100 Andrei
4 / 4 / 0
Регистрация: 19.05.2014
Сообщений: 43
11.11.2014, 11:51     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #7
спасибо)))))
Kukuxumushi
1 / 1 / 0
Регистрация: 19.10.2015
Сообщений: 24
19.10.2015, 01:24     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #8
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
    string line, text;
    int i, s;
    ifstream myfile("D:\input.txt");
    if (myfile.is_open())
    {
        while (myfile.good())
        {
            getline(myfile, line);
            text = line + text;
        }
        i = 0;
        s = text.length();
        while(text[i]!='\0'){
            
            switch (text[i])
            {
            case '0': { text.replace(i, 1, "zero");   }
                      break;
            case '1':{text.replace(i, 1, "one");  }
                     break;
            case '2':{text.replace(i, 1, "two");  }
                     break;
            case '3':{text.replace(i, 1, "three");  }
                     break;
            case '4':{text.replace(i, 1, "four");   }
                     break;
            case '5':{text.replace(i, 1, "five");  }
                     break;
            case '6':{text.replace(i, 1, "six");  }
                     break;
            case '7':{text.replace(i, 1, "seven"); }
                     break;
            case '8':{text.replace(i, 1, "eight");  }
                     break;
            case '9':{text.replace(i, 1, "nine");  }
                     break;
            case '.':{text.replace(i, 1, ".\n");  }
                     break;
            case '!':{text.replace(i, 1, "!\n");  }
                     break;
            case '?':{text.replace(i, 1, "?\n");  }
                     break;
            
            default: break;
            }
            i++;
        }
        cout << text << endl;
        myfile.close();
    }
    system("pause");
    return 0;
}
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
19.10.2015, 01:32     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #9
Kukuxumushi, молодец, ты хоть проверял свою программу? Не говоря уже о том что теме больше трёх лет.
Kukuxumushi
1 / 1 / 0
Регистрация: 19.10.2015
Сообщений: 24
19.10.2015, 09:59     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #10
Цитата Сообщение от castaway Посмотреть сообщение
Kukuxumushi, молодец, ты хоть проверял свою программу? Не говоря уже о том что теме больше трёх лет.
Мне потребовалось решить это задание, и я не найдя решения на форуме решил его и поделился. Программа у меня работает. Единственное, что там лишняя строка с поиском длинны строки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2015, 10:38     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
19.10.2015, 10:38     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами #11
Обрати внимание на открытие файла. Так не делают. Либо: \\, либо: /.
Yandex
Объявления
19.10.2015, 10:38     Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами
Ответ Создать тему
Опции темы

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