C ++ getline ..我不能避免读取ENTER键

时间:2012-02-14 00:32:44

标签: c++ getline

#include <iostream>
using namespace std;

int main()
{
    char user_name[50];
    cout << "what is your name?" << endl;
    cin.getline (user_name, 50, '\n');
    cout << "hello, " << user_name << ", how are you today?" << endl;
}

我需要第二个cout全部在一行,但它读取回车键甚至我放一个delim。我该如何解决这个问题?

hello, johnny walker
, how are you today?

3 个答案:

答案 0 :(得分:0)

如果这是您真正的代码,它应该按照您想要的方式执行。我只是在我的Fedora服务器上运行它并且工作得很好,所有都显示在你问的一行上。

为了省去一些痛苦,并为您提供一种方法来分别存储用户名的两个部分以便更好地处理,您可以试试这个:

#include <iostream>
using namespace std;

int main()
{
    string first_name, last_name;
    cin >> first_name >> last_name;
    cout << "Hello " << first_name << " " << last_name << " how are you?" << endl;
}

但是我只是给你这样,所以让你远离getline,因为你感到困惑 - 实际上它应该(并且确实)也可以正常工作:p

答案 1 :(得分:0)

除了在第1行和第3行丢失分号外,您的代码没有任何问题。它总是在逗号之前打破吗?您可能希望查看以下链接并尝试其中的一些提示:http://www.cplusplus.com/forum/general/1477/

答案 2 :(得分:0)

它在我的Mac OS Lion上运行得很好。您能否提供有关您环境的更多信息?

hello, johnny walker, how are you today?