如题所述
输入方法看图,注意文件要在路径下。
#include <stdio.h>
int main
{
int n = argc;
while (n-->0)
{
printf("%s \n", argv);
}
return 0;
}
编译后可以改变可执行文件名为test.exe 不改也可以
开始->运行->输入cmd->改变路径到你test.exe文件所在的地方 (输入D:改变到D盘, 然后输入:cd 文件路径)
输入:test.exe arg1 arg2
这样输出是:
arg1
arg2
追问你好,感谢你。不过还是有点不明白,while(n-->0)什么意思,还有我执行你上面那个程序之后
每次结果都不相同,如?a ?, ?【 ?"
另外我在cmd中每次执行test.exe arg1 arg2后结果都不同 第一次x♀w x♀w x♀w
下次是x♀wY ♀wY ♀wY为什么会出现不同,能再讲讲吗?
while (n-->0) //也就是 当输入的参数个数(个数也就是test.exe后面的字符串个数 以空格隔开 在我上面的输入例子中“arg1 arg2 ”共2个参数 argc==2 )大于0的时候进入循环
开始 n=2; 判断后n==1 输出argv[1] == "arg2" 第2次输出argv[0] == "arg1" 后 n==0 结束循环
{
printf("%s \n", argv[n]); //少了个n 当然输出出错了
}
也就是说"arg1" "arg2" 分别存在argv[0] argv[1]中 n=2 所以才要减,才能不超出数组范围,然后把他们输出就是了
如果你问的是while循环问题 看书就能明白 从头学起
改正:printf("%s \n", argv[n]); //加 [n] 就可以了
看样子,你还没有学好语法呢,要不你会知道我少写了“[n]”,以及知道while循环的意思哦, 好好看书, 多上机运行吧
argc表示 文件运行时 以空格为间隔的所有参数个数,argv[]数组中依次存放所有字串
比如:
借用上楼的程序来讲讲,希望不介意,该程序保存编译后名叫做 test.exe
在DOS环境中运行是输入如下
test one two three<回车>
argc=3,从0-3,argv[0]=test, argv[1]=one, argv[2]=two,argv[3]=three
这个东东是从DOS时代传下来的,程序后面跟参数,一般是该程序需要参数或需要操作目标时才会用到本回答被网友采纳
经常在cmd命令行模式下调用程序的时候 通常是这样调用,比如:
net stop w3svc
net 就是这个程序的名称 后面的 stop、w3svc 就是命令行参数
启动net.exe 并传送两个参数给它, 这个两个参数net.exe是怎么接收的呢, 就是靠net.exe的 main函数的接收那两个参数
main(int argc,char *argv[ ])
argc 代表参数的个数,
*argv[ ] 外面传进来的这些参数就在这个字符串数组里