fscanf がどのように機能するかを理解していないという強い印象を受けています。
私は次のようにフォーマットされたテキストファイルを持っています:
0x01
0x02
0x04
0x08
0x0F
0x1F
0x2F
0x4F
そして、私はそれらを読みたい:
inline void read_inputs_from_ip_if(){
if(fscanf(ipf,"%x",&input)==EOF){
printf("Terminated.");
exit(0);
}
fscanf(ipf,"%x",&input);
}
しかし、問題は、入力で print ステートメントを使用するたびに 0 が返されることです。各行を連続して読み取り、終わりのない for ループでいくつかの決定ロジックを実行したいと考えています。問題は、入力をまったく読み取らないことです。
これがメイン ブロックです。
ipf = fopen("input.txt","r");
for (; ; )
{
read_inputs_from_ip_if();
printf("Input: %x \n", input);
control_action();
write_output_to_op_if();
}
先に述べたように、入力は 0 から変化することはありません。fscanf は、ループのために、ファイルの最後に到達するまで新しい行を読み取るという印象を受けました...今はよくわかりません。