我的强烈印象是我只是不明白 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);
}
但问题是,每当我在输入上使用打印语句时,它都会产生 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,由于循环,会读取一个新行,直到它到达文件的末尾......现在我不太确定。