c++小问题,急~~~!!!

jzhan 2007-03-04 03:40:35
#include<iostream>
using namespace std;

int main(int argc, char* argv[]){
cin>>argc;
if( argc > 2 ){
cout<<"USAGE:" << argv[0] << " username";
cout<<endl;
}else if( argc == 1 ){
cout<<"hello everyone." << endl;
}else{
cout<<"hello " << argv[1] << endl;
}

return 0;
}

以上code再vc6中运行后,当输入的数字是>3的话返回的结果是
USAGE:C:\Documents and Settings\jzhan\Desktop\vc project\Debug\Cpp156.exe username

但奇怪的是再程序里并没有对argv[]中有任何的赋值动作.

有哪位高手能解答一下.
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
merlinfang 2007-03-04
  • 打赏
  • 举报
回复
第一个参数是程序名
eg446yzk 2007-03-04
  • 打赏
  • 举报
回复
正如 heqichen(橙子) 所说
第一个参数是程序名,所以argc至少有1,如果argc大于1的话,说明有参数输入
argv是参数列表,argv[1]是第一个参数的名字
eg446yzk 2007-03-04
  • 打赏
  • 举报
回复
main只有这两个参数。argc表示参数(包括程序名)个数,argv是一个指针数组,其中每个指针指向一个字符串,即一个参数,因此argv[0]就是程序名,argv[1]就是第一个参数
比如 #./sort 1 2
则argc=3,argv[0]是"sort",argv[1]是"1",argv[2]是"2"。
liumingrong 2007-03-04
  • 打赏
  • 举报
回复
是的,argc是系统计算的,不用自己填
heqichen 2007-03-04
  • 打赏
  • 举报
回复
哦,我知道你意思了。
argc是命令行参数的个数,argv指向每个命令行参数的字符串
相应的,如果我在命令行种输入下面的命令
c\:>C:\Documents and Settings\jzhan\Desktop\vc project\Debug\Cpp156.exe username
那么argv[0] = "C:\Documents and Settings\jzhan\Desktop\vc project\Debug\Cpp156.exe"
argv[1] = "username"
liumingrong 2007-03-04
  • 打赏
  • 举报
回复
假如你的程序名为program,
命令行中运行program a1 a2,argc为3,argv中分别存储program,a1和a2
jzhan 2007-03-04
  • 打赏
  • 举报
回复
argv[1]是什么呢
jzhan 2007-03-04
  • 打赏
  • 举报
回复
第一个参数是int argc,这个是再运行后要输入的值.
拿第二个参数char* argv[]的值是什么时候被赋进去的,因为在代码里并没有对char* argv[]进行赋值
mochen5460 2007-03-04
  • 打赏
  • 举报
回复
argv[0]就是你的文件名
heqichen 2007-03-04
  • 打赏
  • 举报
回复
vc调用程序就是第一个参数了

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧