2016-01-10 43 views

回答

1

你需要解析argv來檢查它是否包含你想要的。

int main(int argc, char** argv) 
{ 
    if (argc < 3) 
    { 
     printf("bad usage"); 
    } 

    if (strcmp(argv[1], "-in") == 0) 
    { 
     char* filename = argv[2]; 
     FILE* f = fopen(filename); 
    } 
} 
+1

這種平等的比較永遠不會爲真。你需要使用'strcmp'。 –

+0

哦,當然,謝謝。 – bercik

+0

「main」原型是什麼? – szczurcio

2

[請注意,這不回答這個問題,但它也展示瞭如何使用參數]

瞭解爭論第一,以及它們是如何處理的。然後你知道如何使用參數並傳遞一個文件名到fopen(或任何其他)函數。

首先嚐試這個小程序:

#include <stdio.h> 

int main(int argc, char *argv[]) 
{ 
    printf("argc = %d\n", argc); 

    for (size_t a = 0; i < argc; ++a) 
    { 
     printf("argv[%zu] = \"%s\"\n", a, argc[a]); 
    } 
} 

如果執行一樣

 
args.exe -in file.txt 

該程序的輸出應該是

 
argc = 3 
argv[0] = "args.exe" 
argv[1] = "-in" 
argv[2] = "file.txt" 
+0

@KerrekSB我相信魔法! ;) –