【发布时间】:2016-01-10 18:49:31
【问题描述】:
我必须编写一个使用这样的参数的 C 程序:
App.exe -in file.txt
我知道一些关于 argv 和 char *argc 但是..我如何使用 fopen 的参数?我不知道!
【问题讨论】:
我必须编写一个使用这样的参数的 C 程序:
App.exe -in file.txt
我知道一些关于 argv 和 char *argc 但是..我如何使用 fopen 的参数?我不知道!
【问题讨论】:
[请注意,这并不能回答问题,但它确实显示了如何使用参数]
首先了解参数,以及如何处理它们。然后你就知道如何使用参数并将文件名传递给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"【讨论】:
您需要解析 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);
}
}
【讨论】:
strcmp。
main 原型是怎么回事?