Tôi đã cố viết một số nguyên vào một tệp (chế độ mở là w). fprintf đã viết nó một cách chính xác nhưng fwrite viết vô nghia:cách viết một số nguyên vào một tệp (sự khác biệt giữa fprintf và fwrite)
int length;
char * word = "word";
counter = strlen(word);
fwrite(&length, sizeof(int), 1, file);
fwrite(word, sizeof(char), length, file);
và kết quả trong file là:
từ
nhưng nếu tôi sử dụng fprintf thay vào đó, như thế này:
int length;
char * word = "word";
counter = strlen(firstWord);
fprintf(file, "%d", counter);
fwrite(word, sizeof(char), length, file);
Tôi nhận được kết quả này trong tệp:
4word
ai có thể cho những gì tôi đã làm sai? cảm ơn!
cập nhật: Cuối cùng tôi muốn thay đổi văn bản thành nhị phân (tôi sẽ mở tệp ở chế độ wb), sẽ có sự khác biệt trong triển khai của tôi không?
chiều dài không được khởi tạo. –
@omrib: Anh ta có thể thích viết rác vào các tệp;) –