C++ cin问题

new*_*456 0 c++ buffer cin

好的,我正在编写一个简单的C++函数来组合cin'd字符串.我目前正在开发Linux,所以我没有简单的"getline(cin,input)"命令.这是迄今为止的代码:

string getLine()          
{
    string dummy;          
    string retvalue;          
    do
    {
        cin << dummy;
        retvalue += dummy;
    } while           
    return retvalue;          
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是:提示实际上是要求用户输入,还是仍然是因为空间而从剩余的缓冲区中读取?

Ara*_*raK 8

有一个getline定义为strings:

std::string line;
std::getline(std::cin, line);
Run Code Online (Sandbox Code Playgroud)


hob*_*bbs 6

我目前正在开发Linux,所以我没有简单的"getline(cin,input)"命令.

什么是Linux与它有关?getline是标准的C++,除了拼写cin.getline(input, size[, delimiter]).

编辑:不删除这个,因为它是一个有用的参考,但AraK的帖子说明std::getline应该是想要的人的首选std::string.istreamgetline工作在一个char *代替.