注册 登录
编程论坛 C++教室

[求助]如何在程序中添加命令行变元

wangweicoin 发布于 2007-08-12 11:38, 1825 次点击
如何在程序中添加命令行变元,如同这条程序,怎样才能使argc==3,来运行全部功能呢?
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
int main(int argc,char *argv[])
{
int disp,count;
if(argc<2){
printf("You must enter the length of the count\n");
printf("on the commamd line,Try again.\n");
exit(1);
}
if(argc==3&&!strcmp(argv[2],"display")) disp=1;
else disp=0;
for(count=atoi(argv[1]);count;--count)
if(disp) printf("%d\n",count);
putchar('\a');
printf("Done");
return 0;
}
11 回复
#2
aipb20072007-08-12 11:56

你直接给他值,agrc = 3;

#3
wangweicoin2007-08-12 12:36
不是很理解,不是说argc代表的是命令行变元的个数吗?把argc=3后,argv[]中不是还是只有一个变元吗?
#4
aipb20072007-08-12 13:07

你弄明白命令行参数没有?我不太懂你程序想做什么,你说明下你的意图吧!

#5
Knocker2007-08-12 13:11
c:\**.exe 123 display
#6
wangweicoin2007-08-12 13:28
回4楼:
嗯,我是刚刚接触这个知识点,这段程序是书上给的,我看不太懂,说是:它从一个由命令行变元给定的数值开始倒计数,当记数到0时,发出嘟嘟声,如果字符串“display”时第二个命令行变元,计数将显示在屏幕上。


#7
wangweicoin2007-08-12 13:29
c:\**.exe 123 display  是在哪里输入?
#8
aipb20072007-08-12 13:38
以下是引用wangweicoin在2007-8-12 13:28:42的发言:
回4楼:
嗯,我是刚刚接触这个知识点,这段程序是书上给的,我看不太懂,说是:它从一个由命令行变元给定的数值开始倒计数,当记数到0时,发出嘟嘟声,如果字符串“display”时第二个命令行变元,计数将显示在屏幕上。


开始没看你程序,呵呵,那就简单了,跟5楼一样。

你是不懂怎么把argc赋3吧?

你在命令窗口中找到执行文件目录,输入 程序名 参数1 参数2
这样就是3个参数,argc == 3了,参数1是个整数,参数2是个字符串(你分别赋display或者其他看看运行结果就明白了)。

#9
wangweicoin2007-08-12 13:48
谢谢,大概知道了,可是命令窗口中找到执行文件目录,我不知该怎么找,呵呵,再指点一下吧!
#10
aipb20072007-08-12 14:05

在debug里把exe文件拷贝到d盘的根目录不就方便了!

#11
wangweicoin2007-08-12 14:31

好了!非常感谢!!!

#12
野比2007-08-12 23:47

再讲一遍

命令行输入内容以空格进行分割...
main函数完整写法是
int main(int argc, char* argv[]){}
其中argc是命令行参数个数, 即后面argv中指针的个数..
argv[]是一个char*的数组..
每一个argv指向一行命令
比如输入:
c:\>dir *.txt /a /s (回车)
则main函数中接受到的参数如下:
argc = 4
argv =
argv[0] -> "dir"
argv[1] -> "*.txt"
argv[2] -> "/a"
argv[3] -> "/s"


实际是用argv[n]进行处理的...
用argc判断参数个数..

1