C++ cin不接受输入,程序立即关闭

C++ cin不接受输入,程序立即关闭,c++,string,input,int,cin,C++,String,Input,Int,Cin,我试着用cin获取一个字符串作为输入,它成功了,但是当我尝试在字符串之后获取一个int作为输入时,控制台不会要求它,程序关闭。这是我的密码: #include <iostream> #include <string> using namespace std; void main(void) { string a, b; int c, d, e; cout << "Enter two words \n"; cin >> a, b; cout

我试着用cin获取一个字符串作为输入,它成功了,但是当我尝试在字符串之后获取一个int作为输入时,控制台不会要求它,程序关闭。这是我的密码:

#include <iostream>
#include <string>
using namespace std;

void main(void)
{ 
string a, b;
int c, d, e;

cout << "Enter two words \n";
cin >> a, b; 
cout << "Enter three int";
cin >> c, d, e;
cout << c*d;
}
此代码不允许我输入第二个输入,但我可以在程序关闭前看到第二个输出。

这是错误的:

cin >> a, b; 
cin >> a, b;
应该是:

cin >> a >> b; 
cin >> c >> d >> e;
同样地:

cin >> c, d, e;
应该是:

cin >> a >> b; 
cin >> c >> d >> e;
确保将来启用编译器警告-这样编译器可以为您指出许多类似这样的简单错误。当我编译启用警告的原始代码时,我得到:

$ g++ -Wall junk.cpp
junk.cpp:5:1: error: 'main' must return 'int'
void main(void)
^~~~
int
junk.cpp:13:11: warning: expression result unused [-Wunused-value]
cin >> c, d, e;
          ^
junk.cpp:11:11: warning: expression result unused [-Wunused-value]
cin >> a, b;
          ^
junk.cpp:13:14: warning: expression result unused [-Wunused-value]
cin >> c, d, e;
             ^
3 warnings and 1 error generated.
从这一点很容易看出,两条cin行有问题,您还需要将main的返回类型更改为int。

您的代码错误:

cin >> a, b; 
cin >> a, b;
不会给你你想要的。在需要从cin读取字符串时,请使用:

这同样适用于其他类型

还请注意:

void main( void )
这是不对的。main必须返回一个int:

尝试:

int main(void)
{ 
string a, b;
int c, d, e;

cout << "Enter two words \n";
cin >> a >> b; 
cout << "Enter three int";
cin >> c >> d >> e;
cout << c*d;
}
线cin>>a,b;使用逗号运算符,从左到右求值不同的表达式。结果与以下代码相同:

cin >> a;
b;
当线路cin>>c、d、e时;如果达到,则类似地评估为:

cin >> c;
d;
e;

结果是,当第二个cin>>时。。。语句将被求值。您输入的第二个单词仍在输入缓冲区中,它将在不等待用户更多输入的情况下完成。

好的,谢谢,它可以工作了!老师说我们应该使用void mainvoid,不知道为什么。当流操作符返回对自己的引用时,你也可以使用cin>>a>>b。太好了-确保打开这些警告并注意它们!。