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

Узнай цену своей работы

Формулировка задачи:

Написать программу, которая считывает текст из файла и выводит его на экран, заменяя цифры от 0 до 9 на слова «ноль», «один», …, «девять», начиная каждое предложение с новой строки. Ребят пожалуйста помогите с этой прогой....тут ее уже пытались делать но она не работает
Ребят пожалуйста помогите, за прогу могу на тел денег положить
#include <stdio.h>
#include <ctype.h>
 
#define MAXLINE  1000    /* максимальная длина строки */
 
/* считывает текст из файла и выводит его на экран,
   заменив цифры от 0 до 9 на слова, каждое предложение с новой строки */
main()
{
    char *printnumber(int c);
    FILE *fp;
    char line[MAXLINE], *p;
    char *fname = "1.txt";
    
    if ((fp = fopen(fname, "rb")) == NULL)
        return 1;
    while ((p = fgets(line, MAXLINE, fp)) != NULL)
        for ( ; *p != '\0'; p++)
            if (isdigit(*p))
                printf("%s", printnumber(*p));
            else if (*p == '.') {
                putchar(*p);
                putchar('\n');
                if (isspace(*(p+1))) {
                    while (isspace(*++p))
                        ;
                    p--;
                }        
            } else    
                putchar(*p);
    fclose(fp);
    return 0;
}
 
#define MAXWORD  100
 
/* printnumber:  выводит слово для цифры */
char *printnumber(int c)
{
    static char nword[MAXWORD];
    
    sprintf(nword, "%s",
        c == '0' ? "ноль"   : c == '1' ? "один"   : c == '2' ? "два"    :
        c == '3' ? "три"    : c == '4' ? "четыре" : c == '5' ? "пять"   :
        c == '6' ? "шесть"  : c == '7' ? "семь"   : c == '8' ? "восемь" :
        c == '9' ? "девять" : "");
    return nword[0] ? nword : NULL;
}
Есть вот такая программа но она не работает, вылетает, может кто нибудь знает почему?

Решение задачи: «Написать программу, которая считывает текст из файла и выводит его на экран»

textual
Листинг программы
strcpy(x[i],a);

Объяснение кода листинга программы

  1. Вводится строка a
  2. В массиве x выделяется память под i элементов
  3. Каждый элемент массива x инициализируется строкой a
  4. В переменной i хранится количество элементов массива x
  5. Значение переменной i используется в цикле для поочередного вывода элементов массива x на экран
  6. Ввод-вывод осуществляется с помощью функции printf
  7. Значение переменной i ограничивается диапазоном от 0 до 99
  8. Если значение переменной i превышает 99, то программа выводит сообщение об ошибке и завершается
  9. Для работы со строками используется функция strcpy

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы