我製作了這個簡單的C程序,其目的是對通過第二個命令行參數給出的文本文件中的字符進行計數。 我面對的問題是,fseek顯示沒有響應結果有一個無限循環(while(!feof(fp)))函數「計數器」。)用fgetc替換fseek該程序工作正常。我的問題fseek出了什麼問題。 在此先感謝。Fseek沒有設置流的文件位置C
#include <stdio.h>
int Counter (FILE * fp);
int main(int argc, char* argv[])
{
int cntr;
FILE * fpc;
fpc = fopen(argv[1],"r");
cntr = Counter(fpc);
fclose(fpc);
printf("%i\n",cntr);
}
int Counter (FILE * fp)
{
int cntr = 0;
while (!feof(fp))
{
cntr++;
fseek(fp,1,1);
}
return cntr;
}
使用常量「SEEK_CUR」而不是1,它使代碼更清晰。 – Matthieu
我已經使用過它,結果相同 – Spyreto
請參閱[爲什麼'while(!feof(file))總是出錯?](http://stackoverflow.com/questions/5431941/why-is-while-feof-file-總是錯誤的)。 –