EOF - это конец файла в C, но как я могу записать начало файла? - PullRequest
1 голос
/ 08 мая 2020

Просто интересно, есть ли способ проверить, является ли символ первым символом во всем файле или на входе? Так же, как я могу проверить, является ли символ EOF или нет, я могу проверить, является ли это началом файла?

Ответы [ 2 ]

3 голосов
/ 08 мая 2020

Как программист, вы контролируете, откуда читаете.

  1. Когда вы открываете файл (кроме случаев, когда вы добавляете к непустому существующему файлу), вы находитесь у первого символа файла.
  2. Когда вы перемещаете указатель файла с помощью fseek вы указываете файловой системе, где разместить указатель. Вы также можете использовать rewind
  3. . Вы можете спросить файловую систему, где вы находитесь в файле, используя ftell

EOF - это не последние данные файла, просто информация, которую вы пытались прочитать после конца файла.

3 голосов
/ 08 мая 2020

EOF - это значение внутриполосной сигнализации, которое не считывается из файла, а генерируется средой выполнения системы (C стандартная библиотека), чтобы сообщить программе, что больше нет данных для чтения.

Вы можете использовать ftell или fgetpos, чтобы получить текущую позицию чтения / записи файла. Если он сообщает вам, что позиция равна 0, вы знаете, что находитесь в начале файла.

...