私は、freadは非バイナリファイルでは使用されないことを知っています。しかし、私は疑問に思っていた:入力の正確なサイズの関数を提供する場合、なぜそれは正しい値を返すべきではなく、代わりにゴミを返しますか?例としてなぜfreadはバイナリ以外のファイルからゴミを読み込みますか?
FILE *fp;
int val = 0;
if(fp = fopen("test.txt", "r")){
fread(&val, sizeof(int), 1, fp);
printf("val read %d \n", val);
fclose(fp);
}
if(fp = fopen("test.txt", "r")){
fscanf(fp, "%d", &val);
printf("val read %d \n", val);
fclose(fp);
}
I内部のみ1234567のファイルを読み取る場合は、出力は、指定抽出物に従って-d指定子でfscanfを使用している
val read 875770417
val read 1234567
ごみの意味は?ファイルの内容はどれですか?出力はどれですか? – Lopan
あなたはどんなファイルを読んでいますか、どのようなゴミが出ていますか?質問に最も関連する部分を記入してください(コメントには含まれていません)。 – ForceBru
申し訳ありませんが、間違った質問をしました。私はfreadでfscanfではないことを意味しました。私も例を加えました。 – barry91