我想解析给定的文本文件,但到目前为止,我的程序似乎没有正确读取。从作为命令行争论传递的文件中读取
#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;
}
我编译程序和我的红帽的Linux机器上,使用下列命令运行它:
./sjf file.text
file.text是一个“4”文本文档作为第一个字符。所以,我希望我的输出是
sanity check
4
然而,当我运行我的程序,而不是我得到
sanity check
1
这意味着的fscanf没中第一个字符正确读取 - 4.是否我有一些语法错误会阻止预期的代码功能?我应该扫描一个字符,然后将其转换为int吗?这立刻想到
他必须检查'argc == 2'是否也是。 – 2011-02-25 22:22:15
@Blagovest Buyukliev:非常真实,我会将其添加到答案中 – Akusete 2011-02-28 20:05:29