#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "ff.txt"
int main() {
char x[10],y[10];
FILE *fp;
fp = fopen(FILE_NAME, "r+");
if (fp == NULL) {
printf("couldn't find %s\n ",FILE_NAME);
exit(EXIT_FAILURE);
}
fprintf(fp,"Hello2 World\n");
fflush(fp);
fscanf(fp,"%s %s",x,y);
printf("%s %s",x,y);
fclose(fp);
return 0;
}
Đây là phiên bản được luộc xuống của những gì tôi đang cố gắng thực hiện. Mã này không in bất kỳ thứ gì trong bảng điều khiển. Nếu tôi xóa cuộc gọi fprintf
, nó sẽ in 2 chuỗi đầu tiên trong tệp, cho tôi số Hello2 World
. Tại sao chuyện này đang xảy ra? Ngay cả sau khi tôi fflush
các fp
?Sử dụng fscanf và fprintf cùng nhau trong C
Cảm ơn! Tôi sẽ chấp nhận câu trả lời của bạn sau 10 phút. –
'rewind (fp)' có lẽ tốt hơn, vì nó cũng có hiệu lực (đối với các tệp được mở để cập nhật) chuẩn bị cho việc chuyển đổi giữa đọc và viết. – Peter
@Peter - Cảm ơn, tôi đã cập nhật câu trả lời. –