Rất chỉ cần đặt, tôi có đoạn mã sau:Cuối FILE * con trỏ không bằng kích thước của dữ liệu bằng văn bản
FILE* test = fopen("C:\\core.u", "w");
printf("Filepointer at: %d\n", ftell(test));
fwrite(data, size, 1, test);
printf("Written: %d bytes.\n", size);
fseek(test, 0, SEEK_END);
printf("Filepointer is now at %d.\n", ftell(test));
fclose(test);
và nó kết quả đầu ra:
Filepointer at: 0
Written: 73105 bytes.
Filepointer is now at 74160.
Tại sao vậy? Tại sao số byte được viết không khớp với con trỏ của tệp?
Tôi khuyên bạn không nên sử dụng đường dẫn kiểu NT trong các đối số fopen(). Windows cũng hỗ trợ các đường dẫn POSIX, có thể di chuyển và không yêu cầu thoát '\'. – Terminus