Работа с функцией fopen - ошибка в коде - C (СИ)

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

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

Подскажите, почему при компиляции выдает ошибку?
#include <stdio.h>
#include <string.h>
 
unsigned crc16(const char *buf, unsigned len)
{
    int i;
    unsigned crc = 0xFFFF;
    while (len--)
    {
        crc ^= *buf++;
        for (i = 8; i--;)
        {
            int f = crc & 1;
            crc >>= 1;
            if (f) crc ^= 0xA001;
        }
    }
    return crc;
}
 
int main()
{
    char buf[4096];
    int len;
 
  FILE *f = fopen("C:\123.txt", "rt");
  fgets(buf, sizeof buf, f);// тут выдает ошибку 
  len = strlen(buf);
  printf("CRC-16 = %u\n", crc16(buf, len));
  putchar('\n');
  fclose(f);
  return 0;
}
Компилирую в Code Gear 2009

Решение задачи: «Работа с функцией fopen - ошибка в коде»

textual
Листинг программы
...
FILE *f = fopen("C:\\123.txt", "rt");
if ( ! f ){
  fprintf(stderr, "Can't open file!\n");
  return 1;
}
...

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

  1. Включаемые заголовочные файлы:
    • stdio.h (для использования функции fopen)
    • stdlib.h (для использования функции fprintf)
    • errno.h (для использования переменной errno)
    • unistd.h (для использования функции _exit)
  2. Код программы:
    • Создается указатель на файл с помощью функции fopen (C:\\123.txt, rt). Значение этого указателя сохраняется в переменной f.
    • Выполняется проверка на то, что файл успешно открылся с помощью оператора отрицания (!). Если файл не открылся, то выводится сообщение об ошибке с помощью функции fprintf (stderr, Can't open file!\n).
    • Возвращается значение 1.
  3. Переменные:
    • f (указатель на файл)
    • stderr (поток, куда выводится сообщение об ошибке)
    • errno (переменная, содержащая код последней ошибки)
  4. Функции:
    • fopen (открывает файл)
    • fprintf (выводит сообщение на указанный поток)
    • _exit (завершает выполнение программы с указанным кодом)

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


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

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

8   голосов , оценка 4.125 из 5