在空格分隔输入后避免ignore()?

时间:2016-11-10 05:16:19

标签: c++ get whitespace getline ignore

  1. 如何在以空格分隔的输入后显示剩余字符?或者,如果错误地询问,我怎么知道他们藏在那里需要被忽略?

  2. 我必须做些什么才能避免使用cin.ignore()?我试图了解如何使用get()getline()。它似乎只有在我第一次使用cin.ignore()时才有效,这对我来说似乎效率低下。

  3. 我的代码提示我输入一个数字,看起来很像这样:

    int previousVar;
    std::cout<<"\n\tWhat value should previousVar be?:\t";
    std::cin>>previousVar;
    

    之后,我立即添加了此代码(从cpp参考网站复制粘贴):

    std::string name;
    //std::cin.ignore();
    std::cout << "Please, enter your full name: ";
    std::getline (cin, name);
    std::cout << "Hello, " << name << "!\n";
    
    cin>>beforeExit;
    

    我的代码完全跳过名字收集部分到我的程序结束暂停,除非我有cin.ignore()。我在其中一个cpp参考页面上读到了我可能从之前的cin输入中剩下的字符。我在angular 2 docshttp://www.cplusplus.com/forum/beginner/111268/看到了类似的问题,但我不确定他们会问我和我一样的问题。

    谢谢!

0 个答案:

没有答案