我想解析給定的文本文件,但到目前爲止,我的程序似乎沒有正確讀取。從作爲命令行爭論傳遞的文件中讀取
#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