Eclipse 运行C++程序命令行参数输入不正确

C++语言 码拜 4年前 (2017-04-11) 625次浏览
开发环境:32位的win7,已安装jdk及MinGW,按照http://blog.csdn.net/baimafujinji/article/details/38026421安装并配置环境变量。
写了一个测试输入参数的程序,代码如下。
#include <iostream>
using namespace std;
int main() {
string s;
cin >> s;
cout << “s=” << s << endl;
cout << “!!!Hello World!!!” << endl;
return 0;
}
编译,在Run Configuration–Arguments中输入参数qq,点击apply–run,此时没有任何输出,点击红色方框(Terminate),才有如下所示的输出。
s=
!!!Hello World!!!
问题1:为什么输入的参数qq,没有显示出来?
问题2:为什么点击run时没有输出,而是点击红色方框之后才有输出?
求各位高手指导。
解决方案

30

你的代码中有
cin >> s;
程序在等待输入,所以没有立刻输出。
将这一句注释就会直接打印!!!Hello World!!!了

10

引用:
Quote: 引用:

你的代码中有
cin >> s;
程序在等待输入,所以没有立刻输出。
将这一句注释就会直接打印!!!Hello World!!!了

**********************************************************************
谢谢你的回答。
在Arguments中,先输入”qq”,然后点击的run,run之前不是已经有输入了吗?
另外,输入的参数为什么没有被打印出来啊?应该打印str=qq,但是实际的输出结果为str=    ,也就是说输入的参数没有被显示出来。

建议你还是先复习一下C语言基础
cin >> s;是从标准输入(一般是控制台)获取输入字符串,你的qq并不是放在标准输入流(stdin)中。
你是想从命令行参数获取输入数据,而命令行参数是保存在argv数组中的,也就是你的Arguments中填入的qq保存在argv数组中,argv[1]的内容为qq
cin无法从argv中获取数据
cin >> s;
cout << “s=” << s << endl;
改成
// cin >> s;
cout << “s=” <<  argv[1] << endl;
就是你想要的效果了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Eclipse 运行C++程序命令行参数输入不正确
喜欢 (0)
[1034331897@qq.com]
分享 (0)