int main(int argc, char *argv[]) { ... }

//e:/c++/test/debug/test.exe
#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
int i;
for (i = 0; i<argc; i++)
cout<<argv[i]<<endl;
return 0;
}
这是一个简单的程序,为什么运行以后直接显示e:/c++/test/debug/test.exe呢?

不是应该手动输入argument的吗?然后再显示的说输入的数据吗?
我用的是vs2005.
参数1,参数2格式怎么写啊? 比如我想调用e盘里文件夹1中的m.txt, 这样写:e:/文件夹1/m.txt 怎么不行啊,是不能写汉字呢,还是路径写的不对啊?希望高手指点我一下,万分感激哦
最新回答
倾城佳人

2024-11-23 09:18:02

argc:表示参数个数,argv 保存所有参数
需要注意的是,程序本身路径永远是第一参数。
所以直接运行相当于在CMD下敲命令:
e:/c++/test/debug/test.exe 回车执行
这时:argc = 1, argv[0] = "e:/c++/test/debug/test.exe"
CMD使用:
例子1:
E:\>e:/c++/test/debug/test.exe 参数1 参数2 回车执行
argc = 3, argv[0] = "e:/c++/test/debug/test.exe"
argv[1] = "参数1" argv[2] = "参数2"
例子2:
E:\C++\test\debug\>test.exe 参数1 参数2 回车执行
argc = 3, argv[0] = "test.exe"
argv[1] = "参数1" argv[2] = "参数2"

注意例子1和例子2程序执行路径,和参数1的不同。
正常使用参数时,第一个参数会根据执行路径不同而不同,但是第一个参数肯定是程序相对或绝对路径,一般是不用管的,真正用到的是第二个参数以后的参数
孤岛re∷

2024-11-23 08:00:53

argument是运行的命令行参数
你运行的时候传进去几个参数再看看
云风未归

2024-11-23 19:07:41

#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
int i;
cout<<argc<<endl;
for (i = 0; i<argc; i++)
cout<<argv[i]<<endl;
return 0;
}

cmd 中这样运行(当然先要compile和build)
F:\c++\Debug/longTimeNoSee.exe hello world
你看看这个就明白了
当你输入hello world 的时候你会看到
argc的值是3,当你什么也不输入的时候
argc的值是1,路径也作为一个参数加到argc中的。
拥欲

2024-11-23 15:46:32

正确啊,因为argv[0]=="e:/c++/test/debug/test.exe"
如果你到cmd下运行就可以输入参数了
假扮的天使

2024-11-23 18:08:15

#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
int i;
cin>>argv;//输入变量名称

for (i = 0; i<argc; i++)
cout<<argv[i]<<endl;
cout<<&argv[i]<<endl;//输出内存地址
return 0;
}