Считывание символов из текстового файла - C (СИ)

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

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

Помогите пожалуйста, не могу понять как это записать в С(Си)

Напишите программу, которая будет считывать символы из файла text.txt не загружает, если только символ '*'. При загрузке характер 'х' или о 'X' программ прочитывает X, если символ 'у' или заявление 'Y' прочитал Y при загрузке '#' персонажи '$' или '&' заявление, которое я прочитал управляющий символ, и если читает символ '*' заявление End и закончит чтение файл. После прочтения списков файлов в послании Количество пространств: с последующим пробелом и количества пробелов чтения. Каждое сообщение сопровождается конца строки.

Ukážka súboru text.txt:

$ abc 5 xyz # & Q *# abf

Ukážkový výstup pre súbor text.txt:

Precital som riadiaci znak Precital som X Precital som Y Precital som riadiaci znak Precital som riadiaci znak Koniec Pocet precitanych medzier: 6

Решение задачи: «Считывание символов из текстового файла»

textual
Листинг программы
#include <stdio.h>
#include <assert.h>
 
int main() {
    FILE* f;
    int ch, count = 0;
    int quit = 0;
 
    assert((f = fopen("text.txt", "r")));
 
    while (((ch = fgetc(f)) != EOF) && !quit) {
        switch (ch) {
            case '#':
            case '$':
            case '&':
                printf("Precital som riadiaci znak\n");
                count++;
                break;
 
            case 'X':
            case 'x':
                printf("Precital som X\n");
                count++;
                break;
 
            case 'Y':
            case 'y':
                printf("Precital som Y\n");
                count++;
                break;
 
            case '*':
                printf("Koniec\n");
                count++;
                quit = 1;
                break;
        }
    }
    printf("Pocet precitanych medzier: %d\n", count);
 
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы
  2. Объявляем переменные:
    • f - указатель на файл
    • ch - символ, считанный из файла
    • count - счетчик символов
    • quit - флаг окончания чтения файла
  3. Открываем файл text.txt для чтения с помощью функции fopen и проверяем успешность операции с помощью assert
  4. Запускаем цикл while, который будет выполняться до тех пор, пока не достигнем конца файла (EOF) и флаг quit не станет равным 1
  5. Внутри цикла считываем символ из файла с помощью функции fgetc и сохраняем его в переменной ch
  6. Используем оператор switch для проверки значения считанного символа
    • Если символ равен '#', '$' или '&', выводим сообщение Precital som riadiaci znak и увеличиваем счетчик count на 1
    • Если символ равен 'X' или 'x', выводим сообщение Precital som X и увеличиваем счетчик count на 1
    • Если символ равен 'Y' или 'y', выводим сообщение Precital som Y и увеличиваем счетчик count на 1
    • Если символ равен '*', выводим сообщение Koniec, увеличиваем счетчик count на 1 и устанавливаем флаг quit в 1
  7. После выполнения цикла while выводим сообщение Pocet precitanych medzier: count
  8. Закрываем файл с помощью функции fclose (которую мы не вызвали, но она необходима для корректного завершения работы с файлом)
  9. Возвращаем 0, что означает успешное выполнение программы

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


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

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

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