2017-03-11 144 views
0

我正在做一個任務,我必須在執行程序時從命令行打開一個文件。使用命令行打開文件

例子:

program.exe file.txt 

但是不工作的一切對我來說。有人可以告訴我我做錯了什麼嗎?這是我第一次將文件作爲參數。

int main(int argc, char **argv) { 
    int value; 
    value = fileRead(argv[1]); 
} 

int fileRead(char argv[]) { 
    int value; 

    FILE *fp; 
    fp = fopen(argv[1], "r"); 

    if (fp) { 
    fscanf(fp, "%d", &value); 
    } else { 
    fprintf(stderr, "Failed to open file!\n"); 
    } 
    return value; 
} 
+1

'argv [1]'不應該在引號中。 –

+0

@JosephSible我刪除了引號,現在我收到很多警告。 「通過'fopen'的參數1使得整數指針沒有強制轉換」 – Cows42

+0

你可以發佈你的整個程序的代碼嗎? –

回答

1

你在混合一個字符和一個字符串。您通過argv[1]fileRead作爲argv。然後在fileRead,你再次做argv[1]。這有效地做了argv[1][1],它只是給出了字符串的第二個字符。您需要從main中刪除[1],然後更改參數類型,或從fileRead刪除[1]

+0

謝謝!這解決了我的問題,我現在明白了。很有幫助 :) – Cows42

相關問題