cin.get() 没有正常工作
cin.get() isn't working as it should
首先,这是代码:
using namespace std;
cout << "aOperation "HyperHype" is now activated!n";
cout << "Enter your agent code:_______bbbbbbb";
long code;
cin >> code;
cin.get();
cout << "aYou entered " << code << ".....n";
cout << "aCode verified! Proceed with Plan Z3!n";
cin.get();
return 0;
它的编译没有问题,运行几乎没有缺陷;在"code"从标准输入接收到其值后,最终的字符串闪烁了一毫秒,程序就死了。 如您所见,我将"cin.get()"成员函数放在最后一个字符串之后以防止这种情况,但它在"cin>>代码"行之后继续死亡。
到目前为止,这种方法对我所有其他练习程序都有效,并且该程序与其他任何程序在结构上都没有区别。
有什么建议吗?
(假设正确的头文件和预处理器指令已到位。
您正在阅读之前在最后get()
调用中输入的换行符。在等待其他输入之前,您可能希望忽略第一个换行符之前的所有字符:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
std::cin.get();
您可以将其缩短为
std::cin >> std::ws;
如果可以,需要输入非空格字符才能终止程序:std::ws
操纵器提取空格字符,直到到达非空格字符或流的末尾。
请注意,std::istream::get()
实际上确实正常工作!它只读取下一个字符。它只是碰巧没有做你所期望的。
添加一个 cin>>代码行,而不是两个 cin.get()。如果程序无论如何都关闭了,那么这可能是最简单的事情。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- C++程序已停止工作-求解常微分方程