void main (int argc, char* argv[])
{
while (*argv)
{
int i = 0;
cout << "argc"<< i << ":" << *argv++ << endl;
}
}
这是我抄的源代码。为什么结果是这样呢:
argc0:C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe
Press any key to continue
实际结果好象应该是自己输入,然后再输出吧?
怎么才能输入数据然后再输出呢?
比如说输入“how are you"
还请高手指教,最好写出步骤!
详细一点....
15 个解决方案
#1
http://zhidao.baidu.com/question/1965338.html
如何运行带参数的main函数,win下。
如何运行带参数的main函数,win下。
#2
http://topic.csdn.net/u/20070207/20/da27aa02-57eb-4816-b121-a5607195d1c2.html?965310391
CSDN上类似帖子蛮多
CSDN上类似帖子蛮多
#3
argv有默认的参数的
#4
主函数的实参是可选的,用来确定程序要执行的操作。比如,假设主函数位于名为prog的可执行文件中,可如下将实参选项传递给程序:
prog -d -o ofile data0
这种用法的处理方法实际上是在主函数main中定义来了两个形参:
int main(int argc , char* argv[]){…}
第二个形参是一个C风格字符串数组。第一个形参argc则用于传递概述组中字符串的个数。由于第二个参数是一个数组,主函数main也可以这样定义:
int main(int argc, char** argv[]{……}
表示argv是只想char*的指针。
当将实参传递给主函数main时,argv中的第一个字符串(如果有的话)通常是程序的名字。接下来的元素间格外的可选字符串传递给主函数main。以前面的命令行为例,argc应设为5,argv会保存下面几个风格的字符串:
argv[0]="prog";
argv[1]="-d";
argv[2]="-o";
argv[3]="ofile";
argv[4]="data0";
prog -d -o ofile data0
这种用法的处理方法实际上是在主函数main中定义来了两个形参:
int main(int argc , char* argv[]){…}
第二个形参是一个C风格字符串数组。第一个形参argc则用于传递概述组中字符串的个数。由于第二个参数是一个数组,主函数main也可以这样定义:
int main(int argc, char** argv[]{……}
表示argv是只想char*的指针。
当将实参传递给主函数main时,argv中的第一个字符串(如果有的话)通常是程序的名字。接下来的元素间格外的可选字符串传递给主函数main。以前面的命令行为例,argc应设为5,argv会保存下面几个风格的字符串:
argv[0]="prog";
argv[1]="-d";
argv[2]="-o";
argv[3]="ofile";
argv[4]="data0";
#5
楼主的程序,由于没有对编译后生成的可执行程序(从输出结果来看,应该是class.exe,在文件夹C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug里)输入参数,所以该程序会自动将本文件夹的名字作为参数输入,所以输出字符串即为该可执行文件的全路径名字(C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe)。
如果想要输出理想的效果,可以在命令行方式下,进入C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug文件夹,然后输入:
class.exe "how are you"
然后敲击回车即可。
或者不用进入class.exe文件夹,直接在命令行方式输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
效果也是一样的。
希望对楼主有帮助。
如果想要输出理想的效果,可以在命令行方式下,进入C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug文件夹,然后输入:
class.exe "how are you"
然后敲击回车即可。
或者不用进入class.exe文件夹,直接在命令行方式输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
效果也是一样的。
希望对楼主有帮助。
#6
命令行在哪?
开始->运行->输入cmd->回车
然后输入什么?
开始->运行->输入cmd->回车
然后输入什么?
#7
void main(int argc,char** argv),这个main函数第二个参数实际上指示的是参数列表,其中argv[0]是你的exe名称,然后argv[1]……argv[n]分别是你的参数名。
#8
楼主好好看看吧,当然是有用了!
#9
argv的第一个就是你的实际exe文件名
#10
wo 我是想输出how are you 怎么才能输出?
#11
然后输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
#12
还是不行!输出结果是:
'C:\Documents’不是内部或外部命令,也不是可运行的程序或批处理文件。
。。。。。。。。。。
????????????????????
'C:\Documents’不是内部或外部命令,也不是可运行的程序或批处理文件。
。。。。。。。。。。
????????????????????
#13
1.cmd
2.cd C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\
到C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\下,然后class.exe "how are you"
2.cd C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\
到C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\下,然后class.exe "how are you"
#14
如果是用VC的话,设一下IDE环境配置就可以调试了。
#15
还有,你那个源代码有点小问题,是逻辑错误,不是语法问题。
int i = 0; //应该定义到while前面,这样比较合乎逻辑,要不有点奇怪,虽然不致出错
int i = 0; //应该定义到while前面,这样比较合乎逻辑,要不有点奇怪,虽然不致出错
#1
http://zhidao.baidu.com/question/1965338.html
如何运行带参数的main函数,win下。
如何运行带参数的main函数,win下。
#2
http://topic.csdn.net/u/20070207/20/da27aa02-57eb-4816-b121-a5607195d1c2.html?965310391
CSDN上类似帖子蛮多
CSDN上类似帖子蛮多
#3
argv有默认的参数的
#4
主函数的实参是可选的,用来确定程序要执行的操作。比如,假设主函数位于名为prog的可执行文件中,可如下将实参选项传递给程序:
prog -d -o ofile data0
这种用法的处理方法实际上是在主函数main中定义来了两个形参:
int main(int argc , char* argv[]){…}
第二个形参是一个C风格字符串数组。第一个形参argc则用于传递概述组中字符串的个数。由于第二个参数是一个数组,主函数main也可以这样定义:
int main(int argc, char** argv[]{……}
表示argv是只想char*的指针。
当将实参传递给主函数main时,argv中的第一个字符串(如果有的话)通常是程序的名字。接下来的元素间格外的可选字符串传递给主函数main。以前面的命令行为例,argc应设为5,argv会保存下面几个风格的字符串:
argv[0]="prog";
argv[1]="-d";
argv[2]="-o";
argv[3]="ofile";
argv[4]="data0";
prog -d -o ofile data0
这种用法的处理方法实际上是在主函数main中定义来了两个形参:
int main(int argc , char* argv[]){…}
第二个形参是一个C风格字符串数组。第一个形参argc则用于传递概述组中字符串的个数。由于第二个参数是一个数组,主函数main也可以这样定义:
int main(int argc, char** argv[]{……}
表示argv是只想char*的指针。
当将实参传递给主函数main时,argv中的第一个字符串(如果有的话)通常是程序的名字。接下来的元素间格外的可选字符串传递给主函数main。以前面的命令行为例,argc应设为5,argv会保存下面几个风格的字符串:
argv[0]="prog";
argv[1]="-d";
argv[2]="-o";
argv[3]="ofile";
argv[4]="data0";
#5
楼主的程序,由于没有对编译后生成的可执行程序(从输出结果来看,应该是class.exe,在文件夹C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug里)输入参数,所以该程序会自动将本文件夹的名字作为参数输入,所以输出字符串即为该可执行文件的全路径名字(C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe)。
如果想要输出理想的效果,可以在命令行方式下,进入C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug文件夹,然后输入:
class.exe "how are you"
然后敲击回车即可。
或者不用进入class.exe文件夹,直接在命令行方式输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
效果也是一样的。
希望对楼主有帮助。
如果想要输出理想的效果,可以在命令行方式下,进入C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug文件夹,然后输入:
class.exe "how are you"
然后敲击回车即可。
或者不用进入class.exe文件夹,直接在命令行方式输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
效果也是一样的。
希望对楼主有帮助。
#6
命令行在哪?
开始->运行->输入cmd->回车
然后输入什么?
开始->运行->输入cmd->回车
然后输入什么?
#7
void main(int argc,char** argv),这个main函数第二个参数实际上指示的是参数列表,其中argv[0]是你的exe名称,然后argv[1]……argv[n]分别是你的参数名。
#8
楼主好好看看吧,当然是有用了!
#9
argv的第一个就是你的实际exe文件名
#10
wo 我是想输出how are you 怎么才能输出?
#11
然后输入:
C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\class.exe "how are you"
#12
还是不行!输出结果是:
'C:\Documents’不是内部或外部命令,也不是可运行的程序或批处理文件。
。。。。。。。。。。
????????????????????
'C:\Documents’不是内部或外部命令,也不是可运行的程序或批处理文件。
。。。。。。。。。。
????????????????????
#13
1.cmd
2.cd C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\
到C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\下,然后class.exe "how are you"
2.cd C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\
到C:\Documents and Settings\Administrator\桌面\杨小颖\2009\Debug\下,然后class.exe "how are you"
#14
如果是用VC的话,设一下IDE环境配置就可以调试了。
#15
还有,你那个源代码有点小问题,是逻辑错误,不是语法问题。
int i = 0; //应该定义到while前面,这样比较合乎逻辑,要不有点奇怪,虽然不致出错
int i = 0; //应该定义到while前面,这样比较合乎逻辑,要不有点奇怪,虽然不致出错