printf("The command line has %d arguments: \n",argc-1); for(count=1;count printf("%d: %s\n",count,argv[count]);
return 0; } 编译运行,在命令行输入c I love you 回车,下面是从命令行运行该程序的结 果: The command line has 3 arguments: 1:I 2:love 3:you 从本例可以看出,程序从命令行中接受到4个字符串(包括程序名),并将它们 存放在字符串数组中,其对应关系: argv[0] ------> c(程序名) argv[1] ------> I argv[2] ------> love argv[3] ------> you 至于argc的值,也即是参数的个数,程序在运行时会自动统计,不必我们操心。 这个例子中,每个字符串都时一个单词(字母),那既然是字符串,要把一句话 当作参数赋给程序该怎么办?你可以在命令行里这样输入 c "I love you." "I'm too."。程序运行结果: The command line has 2 arguments: 1:I love you. 2:I'm too. 其对应关系: argv[0] ------> c(程序名) argv[1] ------> I love you. argv[2] ------> I'm too. 要注意的是,你在命令行的输入都将作为字符串形式存储于内存中。也就是说, 如果你输入一个数字,那么要输出这个数字,你应该用%s格式而非%d或者其他。 再来看一个例子: //d.c #include "stdio.h" int main(int argc, char *argv[]) { FILE *fp;
fp=fopen(argv[1],"w"); fputs("I love you.",fp); fclose(fp);