次のように、ファイルをスキャンしてfscanf
、文字列をサイズ 20 の char 配列に入れようとしています。
char buf[20];
fscanf(fp, "%s", buf);
現在、ファイルfp
には以下が含まれています: 1 + 23
.
次のように、最初の要素へのポインターを設定してbuf
います。
char *p;
p = buf;
印刷buf
、printf("%s", buf)
収量のみ1
。インクリメントp
して印刷しようとすると、ゴミも印刷されます(p++; printf("%c", *p)
)。
ここで何が間違ってfscanf
いますか?ファイルから文字列全体を読み取らないのはなぜですか?