gpt4 book ai didi

c++ - Cin:WAITING 。两个继续 cin.ignore 不起作用

转载 作者:行者123 更新时间:2023-11-30 04:04:43 31 4
gpt4 key购买 nike

代码如下:

cout << "Press <ENTER> when you are ready to procceed..." << endl;
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
cin.ignore(std::numeric_limits<streamsize>::max());
cin.clear();
...
cout << "Insert " << nominal << " rubbles into money acceptor and press <ENTER>" << endl;
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
cin.ignore(std::numeric_limits<streamsize>::max());
cin.clear();

它第一次等待,但第二次,它会毫不犹豫地直接抛出它。

我试着只使用 cin.ignore(std::numeric_limits::max(),'\n');或 cin.get() 或 cin.ignore() 或 getchar()。什么都没用。

我什至试图让用户输入一个数字:

{cout << "eof: " << cin.eof(); int num; cin >> num; cout << "eof: " << cin.eof(); }

第二次也不行!它在第二次调用时从 cin 读取“32767”。并输出:

eof: 0
eof: 1

最佳答案

我不太清楚您要做什么或为什么要这样做。但是,我编写了这个简单的测试应用程序,它对我来说工作得很好:

#include <iostream>
#include <limits>

int main()
{
std::cout << "Press enter to start\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Press enter again to begin data entry\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');

int i, j;

std::cout << "Enter a value for i\n";
std::cin >> i;
// skip any trailing characters after the number the user entered
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Enter a value for j\n";
std::cin >> j;
// skip any trailing characters after the number the user entered
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');

std::cout << "i was " << i << ", j was " << j << "\n";

std::cout << "Press enter to continue\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Press enter again to exit\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');

return 0;
}

离开cin.ignore(std::numeric_limits<streamsize>::max());您在代码中的行迫使我按下回车键(以触发“直到 \n 代码才忽略”),然后按下 control-D 发送 EOF 以触发第二个 ignore 调用。我无法复制您的 “它没有任何停顿地通过它” 条件。

此代码在 GCC 4.7.2 和 VS2013 Express 下构建并正确运行。

关于c++ - Cin:WAITING <ENTER>。两个继续 cin.ignore 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23625201/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com