Вместо содержимого файла выводятся крокозябры - C (СИ)

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

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

Здравствуйте! У меня проблема, когда я хочу считать данные с файла и вывести их на экран, вместо содержимого файла выводятся крокозябры (смайлики), подскажите в чем моя ошибка.
int main(int argc, char *argv[])
{
    setlocale(LC_ALL, NULL);
    FILE *in;
    int ch;
    if ((in = fopen("1.txt", "r")) != NULL)
    {
        while ((ch = getc(in) != EOF))
        {
            putc(ch, stdout);
        }
        fclose(in);
    }
    else
    {
        
    }
    system("PAUSE");
    return 0;
}

Решение задачи: «Вместо содержимого файла выводятся крокозябры»

textual
Листинг программы
while ((ch = getc(in)) != EOF)

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

  1. Входные данные:
    • in - файловый поток, связанный с файлом, который необходимо прочитать
    • ch - переменная типа char, которая будет использоваться для хранения очередного символа из файла
    • EOF - константа, обозначающая конец файла
  2. Тело цикла while:
    • getc(in) - функция, которая считывает следующий символ из файла и сохраняет его в переменной ch
    • ch != EOF - условие цикла, которое проверяет, что считанный символ не является последним в файле
  3. Вывод:
    • В данном случае вместо вывода на экран используется стандартный поток ошибок (stderr), на который выводятся предупреждения и ошибки
    • fprintf(stderr,Крокозябры\n); - функция, которая выводит на стандартный поток ошибок строку Крокозябры Таким образом, код считывает каждый символ из файла до его конца и выводит на экран строку Крокозябры для каждого считанного символа.

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


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

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

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