質問: C言語の質問について fscanfを使ったファイル読み込みが理解できなく、 ファイル書き込みで書き込んだテキストファイルから一行ずつ読み込むという処理がうまくいきません。
回答: 細かい所までは見てませんが、 printfとscanfでは、フォーマット指定子のフォーマットが異なります。(fscanfやsscanfも同じ) printfの場合は %[フラグ][最小フィールド幅].[精度][長さ修飾子]変換指定子 ですが、 scanfの場合は、 %[代入抑止][最大フィールド幅][修飾子]変換指定子 となります。 scanfには、フラグ指定子である"-"はありませんし、 "5s"と書いても、それは、最大フィールドを示し、 「最大で5文字まで読む」であり、 「5文字分確実に読み込む」を意味しません。 たとえば、 "ABCDEF"を"%5s"で読み取れば、"ABCDE"になりますが、 "ABC DEF"を"%5s"で読み取れば"ABC"になります。 (s指定子は空白文字(スペース、タブ等)が出るまでの連続したデータを読みます)