它總是在最後打印一個額外的字符。這裏是代碼:fscanf在最後掃描一個額外的字符
#include <stdio.h>
int main()
{
char bit;
FILE *fp_read,*fp_write;
fp_read = fopen("test.txt","r");
if(fp_read==NULL) {
printf("Error!! Unable to open the file!!");
return 1;
}
while(!feof(fp_read)) {
fscanf(fp_read,"%c",&bit);
printf("%c",bit);
}
fclose(fp_read);
return 0;
}
如果test.txt包含010101它打印0101011。如果00110打印001100.如果它包含abc它打印abcc。這意味着它總是重複最後一個字符。
什麼問題?有人可以解釋嗎?
你需要閱讀有關[爲什麼是錯誤的使用'FEOF()'在一個文件中環路(http://stackoverflow.com/questions/5431941/why-is-while-feof-file -always-錯誤的)。 –
我無法在linux上重現問題。你能提供有關env的額外信息嗎? –
在同一目錄下創建一個文件:test.txt並在test.txt中寫入一些內容。 –