я имею немного головной боли с этим кодом:C Файлы triying перезаписать
FILE usuaris*
....
usuaris=fopen("usuarisfinal.txt","a+b");
fseek(usuaris,(pos-1)*sizeof(Tusuari),SEEK_SET);
fwrite(&usuaux,sizeof(Tusuari),1,usuaris);
Что я хочу сделать, это перезаписать Tusuari регистрироваться «usuaux» в положении «поз», но я в конечном итоге добавляю «usuaux» в конец файла. Я знаю, что изменение режима «a + b» на «r + b» я могу делать то, что хочу, но я не совсем понимаю, почему я не могу заставить его работать таким образом!
P.S. Извините за возможные ошибки, английский для меня - это третий язык!
вы открыли файл с 'a' (append)', поэтому все операции записи будут добавлены в файл. Это корень проблемы. Использование «режима» Read Plus Binary :(«r + b») говорит: 1) Я хочу прочитать файл. 2) Я хочу записать файл в текущий индикатор положения файла. и 3) Я хочу выполнять все операции чтения и записи с использованием «двоичных» (без специальной обработки строк перевода строк и т. д. Также не хочу использовать «w + b», поскольку открытие для 'write' приведет к усечению файла во время 'fopen()' – user3629249