首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳过cin.get()和cin.ignore()

跳过cin.get()和cin.ignore()
EN

Stack Overflow用户
提问于 2012-10-24 12:43:21
回答 3查看 2.4K关注 0票数 3

由于某种原因,我的程序跳过了代码片段cin.get();cin.ignore();。我不知道为什么会发生这种情况,因为这两个片段在main()作用域中工作得很好,而不是在if语句中。

下面是相关的代码片段:

代码语言:javascript
复制
input.open(inputFileName);
if (input.fail())
{
    cout << "Error: failed to open '" << inputFileName << "'.\n\n";
    cout << "Press '' to end the program...";
    cin.get(); //cin.ignore() also does nothing.
    input.close();
    exit(1);
}

其余的源代码可以在这里找到:http://pastebin.com/xy0qMvBq

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-24 12:48:29

代码语言:javascript
复制
cin >> inputFileName;

使用该命令,用户将键入一些“内容”,然后按回车键。这将把“材料”加上一个换行符放到输入缓冲区中。然后“东西”将被存储到inputFileName中,换行符将留在那里。这是cin.get()和cin.ignore()读取的内容,它们不会被跳过。

票数 3
EN

Stack Overflow用户

发布于 2012-10-24 14:26:04

您发布的代码部分绝对工作正常,cin.get()在这种情况下不会被忽略。

票数 0
EN

Stack Overflow用户

发布于 2018-08-03 20:24:21

尝试:

代码语言:javascript
复制
std::string dummy;
getline(std::cin,dummy);

或者(如果你还没有准备好):

代码语言:javascript
复制
cin.ignore(1000,'\n'); 

cin.ignore (1000,'\n');删除cin缓冲区中的所有字符,直到找到cin缓冲区中的'\n‘字符或达到忽略/删除的最大字符数(本例中为1000)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13043148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档