2016-01-10 21 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我相信魔法! ;) –