Tại sao mã bên dưới không hoạt động? Ý tôi là, nó hiển thị tất cả các loại ký tự lạ trên đầu ra của bàn điều khiển.Tại sao tôi cần xóa luồng I/O của mình để có được kết quả chính xác?
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Tuy nhiên, mã bên dưới hoạt động tốt.
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fflush (pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Tại sao tôi cần xóa luồng để có được kết quả chính xác?
Thx rất nhiều !!!!!! – Jaebum
Nhưng tại sao đầu ra của nguồn thứ hai không phải là "kiểm tra"? Nó chỉ hiển thị không có gì .. – Jaebum
@Lee: Đơn giản, bạn đọc nó từ điểm mà bạn rời khỏi văn bản, bạn cần phải tìm kiếm lại để bắt đầu cho rằng để làm việc. – falstro