次の機能があります。
void readAndPrint(FILE * f) {
int c;
while(c = fgetc(f) != EOF) {
printf("%d", c);
}
}
main()本体で、次のコードを使用して上記の関数を使用しました。
FILE * pFile;
pFile=fopen ("myfile.txt","r");
readAndPrint(pFile)
;
myfile.txtに何を入れても、プログラムはそれを出力します。たとえば、abcの場合、111が出力されます。
EOFと適切に比較するには、関数内のcをintとして宣言する必要があることを私は知っています。また、テキストファイルの各文字に設定されたASCIIからのintコードが出力されることを期待していました(aの場合は97、...)。なぜ「1つ」が出力されるのかわかりません...その理由を知っていますか?前もって感謝します。