代码之家  ›  专栏  ›  技术社区  ›  Hoang Minh

如何为我的getline()修复这个cin.ignore()?

  •  -1
  • Hoang Minh  · 技术社区  · 11 年前

    所以我为c++编写了一个简单的程序,遇到了这个问题。该程序基本上要求用户输入,并且它将跳过输入后的任何空白。我试着用 cin.ignore() 在用户输入后,但它不起作用。我该怎么修?

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        string s;
        cout << "Your name: ";      
        getline(cin, s);
        cin.ignore();
    
        cout << "You entered: " << s << endl;
        return 0;
    }
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   M.M    11 年前

    你为什么要使用 std::cin.ignore() ? 假设您想跳过潜在的前导空格,您可能需要使用 std::ws :

    std::getline(std::cin >> std::ws, s);