Работа с функцией fopen - ошибка в коде - C (СИ)
Формулировка задачи:
Подскажите, почему при компиляции выдает ошибку?
Компилирую в Code Gear 2009
#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; }
Решение задачи: «Работа с функцией fopen - ошибка в коде»
textual
Листинг программы
... FILE *f = fopen("C:\\123.txt", "rt"); if ( ! f ){ fprintf(stderr, "Can't open file!\n"); return 1; } ...
Объяснение кода листинга программы
- Включаемые заголовочные файлы:
- stdio.h (для использования функции fopen)
- stdlib.h (для использования функции fprintf)
- errno.h (для использования переменной errno)
- unistd.h (для использования функции _exit)
- Код программы:
- Создается указатель на файл с помощью функции fopen (
C:\\123.txt
,rt
). Значение этого указателя сохраняется в переменной f. - Выполняется проверка на то, что файл успешно открылся с помощью оператора отрицания (!). Если файл не открылся, то выводится сообщение об ошибке с помощью функции fprintf (stderr,
Can't open file!\n
). - Возвращается значение 1.
- Создается указатель на файл с помощью функции fopen (
- Переменные:
- f (указатель на файл)
- stderr (поток, куда выводится сообщение об ошибке)
- errno (переменная, содержащая код последней ошибки)
- Функции:
- fopen (открывает файл)
- fprintf (выводит сообщение на указанный поток)
- _exit (завершает выполнение программы с указанным кодом)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д