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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
#1

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

14.04.2012, 09:03. Просмотров 3367. Ответов 10
Метки нет (Все метки)

Нужна Программа, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один",..."девять", начиная каждое предложение с новой строки

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

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

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

Считать текст из файла и вывести на экран его предложения в обратном порядке - C++
Не могу найти ошибку, помогите пожалуйста! #include "stdafx.h" #include "iostream"; #include "conio.h"; #include "stdio.h"; ...

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

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

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

10
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
14.04.2012, 10:52 #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
0
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
15.04.2012, 15:19  [ТС] #3
а как полностью программа будет выглядеть? что-то у меня не работает
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
15.04.2012, 15:25 #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;
}
1
Юлия17071992
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
16.04.2012, 14:10  [ТС] #5
Работает! Только можешь объяснить как функции работают?
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
16.04.2012, 15:04 #6
В цикле при помощи функции ch = fgetc(fp) получаем каждый символ
и записываем в переменную ch. Далее сравниваем при помощи ф-ции
isdigit(ch) == true, если значение переменной ch - цифра, вычисляем
индекс слова "zero" - "nine" в массиве digits: ch - '0', и выводим
соответствующее слово на экран, далее если ch - '.','?','!', то печатаем
символ перехода на другую строку "\n". Во всех других случаях печатаем
сам символ ch.
0
Pro100 Andrei
4 / 4 / 0
Регистрация: 19.05.2014
Сообщений: 43
11.11.2014, 11:51 #7
спасибо)))))
0
Kukuxumushi
1 / 1 / 0
Регистрация: 19.10.2015
Сообщений: 24
19.10.2015, 01:24 #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;
}
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.10.2015, 01:32 #9
Kukuxumushi, молодец, ты хоть проверял свою программу? Не говоря уже о том что теме больше трёх лет.
0
Kukuxumushi
1 / 1 / 0
Регистрация: 19.10.2015
Сообщений: 24
19.10.2015, 09:59 #10
Цитата Сообщение от castaway Посмотреть сообщение
Kukuxumushi, молодец, ты хоть проверял свою программу? Не говоря уже о том что теме больше трёх лет.
Мне потребовалось решить это задание, и я не найдя решения на форуме решил его и поделился. Программа у меня работает. Единственное, что там лишняя строка с поиском длинны строки.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.10.2015, 10:38 #11
Обрати внимание на открытие файла. Так не делают. Либо: \\, либо: /.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2015, 10:38
Привет! Вот еще темы с ответами:

Считать текст из файла и вывести все его предложения в обратном порядке - C++
с++(желательно в коде cout) 1) надо решить с помощью двумерного массива: дана прямоугольная целочисленная матрица. Определить: а)...

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
19.10.2015, 10:38
Ответ Создать тему
Опции темы

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