【发布时间】:2013-12-18 10:24:07
【问题描述】:
我有一个 C 程序,需要为 10 个不同的输入文件运行。与其运行程序 10 次不同的时间,是否可以只运行 1 次允许一个接一个地运行每个文件。
谢谢。 问候, 卡马尔
【问题讨论】:
-
把文件处理逻辑放到一个单独的函数中,为每个文件调用那个函数?
我有一个 C 程序,需要为 10 个不同的输入文件运行。与其运行程序 10 次不同的时间,是否可以只运行 1 次允许一个接一个地运行每个文件。
谢谢。 问候, 卡马尔
【问题讨论】:
当然,这就是 main 参数的用途:
void process_file(char const * filename);
int main(int argc, char * argv[])
{
for (int i = 1; i < argc; ++i)
{
process_file(argv[i]);
}
}
用法:
./a.out file1 file2 file3
【讨论】:
int main(int argc, char * argv[])
argc 是参数计数,所以当你向程序传递参数时,这个变量会告诉你的主程序已经传递了多少参数。
argv[0] -> 你的程序名
argv[1]..argv[n] -> 传递的参数的名称。
所以在你的主要:
for (int i = 1; i < argc; i++)
{
fopen(argv[i],....);
}
您可以在命令行的项目属性(如果您使用的是 MSVS)中传递参数。
【讨论】: