2012-02-14 19 views
0
#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。我怎样才能解决这个问题?C++ getline ..我不能避免读取ENTER键

hello, johnny walker 
, how are you today? 
+1

我更正了语法(在编辑中)。您的代码在我的电脑上运行,并提供所需的输出。 – Sharad 2012-02-14 00:38:29

+0

此外,此图形可能有所帮助:http://meta.stackexchange.com/a/65088/136659 – Jacob 2012-02-14 00:45:09

+0

“getline”的文档说“如果找到分隔符,它将被提取并丢弃,即它不存储,并且接下来的输入操作将在它后面开始。“ – 2012-02-14 00:51:32

回答

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

0

它在我的Mac OS Lion上工作得很好,因为它应该。你能提供更多关于你的环境的信息吗?

hello, johnny walker, how are you today?