为什么有两个成员函数?

why there are two member functions?

我正在学习 C++,但是,我不明白有什么区别顺便说一句:

std::cin.get();

std::cin.getline();

虽然;我知道如何使用它们,但不明白为什么有两个? 我读过这个解释:

getlinereads the newline character then discard it; whereas .get()reads it then leaves it in the input queue ..!! why each of them does what it does ?

抱歉英语不好:(

"get"只取一个字符,"getline"取所有字符到一个行结束符。这是主要区别。

std::cin.get(),当不带参数调用时,从输入中读取一个字符并 returns 它。

std::cin.getline(char* str, std::streamsize count) 读取一行输入并将其复制到缓冲区 str 中,后跟一个额外的空字符以形成 C 字符串。 count 必须是该缓冲区的大小,即它可以复制到其中的最大字符数(加上空字节)。

要读取一行而不关心缓冲区大小,最好使用 std::getline:

#include <string>
std::string line;
std::getline(std::cin, line);

cin 读取一行到 line

参见 http://en.cppreference.com/w/cpp/io/basic_istream and http://en.cppreference.com/w/cpp/string/basic_string/getline