我正在尝试解析给定的文本文件,但到目前为止,我的程序似乎没有正确读取。
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fr; //file pointer
int buildingFloors = 1;
printf("sanity check\n");
fr = fopen (argv[0], "r");
fscanf(fr, "%d", &buildingFloors );
printf("%d\n", buildingFloors);
fclose(fr);
return 0;
}
我编译该程序并使用以下命令在我的 redhat linux 机器上运行它:
./sjf file.text
file.text 是第一个字符为“4”的文本文档。所以我希望我的输出是
sanity check
4
但是,当我运行我的程序时,我得到了
sanity check
1
这意味着 fscanf 没有正确读取第一个字符 -- 4. 我是否有一些语法错误阻止了预期的代码功能?我应该扫描一个字符,然后以某种方式将其转换为 int 吗?