cin不接受输入,程序立即关闭
std::cin does not accept input, program closes immediately
我试图获得一个字符串作为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
读取字符串,请使用:
cin >> a;
cin >> b;
同样适用于其他类型
还要注意:
void main( void )
不正确。main
必须返回int
:
int main( void )
{
return 0;
}
cin >> a, b;
行使用逗号运算符,从左到右计算不同的表达式。结果与下面的代码相同:
cin >> a;
b;
当到达cin >> c, d, e;
行时,它同样被计算为:
cin >> c;
d;
e;
结果是,当计算第二个cin >> ...
语句时,您输入的第二个单词仍然在输入缓冲区中,它完成了,而无需等待用户的更多输入。
这是错误的:
cin >> a, b;
应该是:
cin >> a >> b;
同样:
cin >> c, d, e;
应: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
。
Try with:
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;
}
相关文章:
- 为什么线程不接受此输入?
- C++程序不会从 Windows 控制台运行
- 程序不会执行函数 c++
- 为什么我的程序不能显示斐波那契级数?
- 函数不接受 X 参数,函数使用默认参数
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 程序不向函数返回值
- 英特尔 TBB 程序不会终止,可能会误用参考计数器
- C++ 程序不会因为内存而终止
- B不接受8作为输入的是什么?C++
- 为什么一个简单的程序不能立即启动
- C++数组输入不接受一定数量的整数
- 我的C++程序不接受菜单后的输入
- 确定数的因数 当除数之和不大于该数时,程序将不接受大于 10000 的限制
- 程序不接受任何输入.第一次输入后,它会自动关闭
- C++中的代码将不接受否并停止程序
- C++ - 使用 cin 循环运行 while 后,程序不会再次接受输入
- 我在我的程序中添加了一个void函数,它不接受任何参数,现在我的程序在运行时只返回一个空白终端
- cin不接受输入,程序立即关闭