#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *file;
char file_name[] = "test.txt";
char load_string[] = "tst";
file = fopen( file_name, "wb" );
fseek( file, 17, SEEK_SET);
fwrite( load_string, 1, 7, file);
fclose(file);
return 0;
}
Изменение содержимого существующего файла
Код:
В файле test.txt до выполнения программы было:
qwertyuiopasdfghjklz
(71 77 65 72 74 79 75 69 6F 70 61 73 64 66 67 68 6A 6B 6C 7A)
В итоге, в файл записывается:
.................tst
(00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 73 74)
Каким образом можно изменить содержимое существующего файла в определенных местах без копирования всего его содержимого в буфер и записи обратно после изменения?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
int main(int argc, char *argv[])
{
FILE *file;
char file_name[] = "test.txt";
char load_string[] = "tst";
file = fopen( file_name, "r+" );
fseek( file, 17, SEEK_SET);
fwrite( load_string, sizeof(char), strlen(load_string), file);
fclose(file);
return 0;
}
#include <stdlib.h>
#include <cstring>
int main(int argc, char *argv[])
{
FILE *file;
char file_name[] = "test.txt";
char load_string[] = "tst";
file = fopen( file_name, "r+" );
fseek( file, 17, SEEK_SET);
fwrite( load_string, sizeof(char), strlen(load_string), file);
fclose(file);
return 0;
}
Так работает. Тут написано почему твой код работает не так как ты хочешь.
Понял свою ошибку, спасибо за помощь.