Q: Я пытаюсь обновить файл на месте, используя режим
fopen
"r+"
, читая определенную строку и записывая измененную строку, но это не работает.A: Обязательно вызовите
fseek
перед тем, как писать, и для поиска возврата к началу строки, которую вы пытаетесь перезаписать, и потому чтоfseek
илиfflush
всегда требуются между чтением и записью в режимах чтения/записи "+". ,
Мой вопрос заключается в том, почему fseek
или fflush
всегда требуются между чтением и записью в режимах чтения/записи "+"? Раздел 5.2 Эндрю Кенига C Traps and Pitfalls (1989) упоминал, что это связано с проблемой обратной совместимости. Кто-нибудь может объяснить подробно?