Вам не нужно искать, так как чтение начнется с начала файла по умолчанию.
Это не всегда так. При открытии в режиме a
или a+
указатель файла устанавливается на конец файла.
В разделе 7.9.13 C99 говорится: «Если файл может поддерживать запросы на позиционирование (например, файл на диске, а не на терминале), то индикатор позиции файла, связанный с потоком, располагается в начале (число символов ноль) файла, если только файл не открывается в режиме добавления, и в этом случае реализация определяет, будет ли индикатор позиции файла изначально расположен в начале или в конце файла».
Как сейчас написано, ваш ответ неясен. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, которые помогут другим понять, как это отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
https://en.cppreference.com/w/c/io/fopen
говорит, что это зависит от режима, в котором вы открываете файл. Например, если это «добавить» -- указатель устанавливается в EOF.
Для объектов fstream
это зависит от openmode
(который для ifstream
по умолчанию равен in
). Для stdio это зависит от параметра режима, переданного в fopen
.
Из https://en.cppreference.com/w/cpp/io/basic_filebuf/open
Так что для файла открытого для "r"
/in
ответ - нет, искать в начало не нужно. Ясно, что нет смысла начинать с какого-либо другого места в файле, открытом только для чтения.
Нет, индикатор исходной позиции файла будет располагаться в начале файла.
Согласно 7.21.3 Файлы, пункт 1 (черновика) стандарта C11 (выделено мной):
Поток связывается с внешним файлом (который может быть физическим устройством) путем открытия файла, что может включать создание нового файла. Создание существующего файла приводит к тому, что его прежнее содержимое при необходимости отбрасывается. Если файл может поддерживать запросы на позиционирование (например, файл на диске, а не на терминале), то индикатор позиции файла, связанный с потоком, располагается в начале (нулевой символ) файла, если только файл не открывается с помощью режим добавления, и в этом случае реализация определяет, находится ли индикатор позиции файла изначально в начале или в конце файла. Индикатор позиции в файле поддерживается последующими запросами на чтение, запись и позиционирование, чтобы облегчить упорядоченное продвижение по файлу.
Обратите внимание, что если файл открыт в режиме добавления, начальная позиция определяется реализацией.
unless the file is opened with append mode in which case it is implementation-defined whether the file position indicator is initially positioned at the beginning or the end of the file.
@ Мартин Действительно. Я добавлял это, когда вы комментировали.
Спасибо за ответ. У вас есть ссылка?