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