我正在学习c ++,但是,我无法理解BTW有什么区别:
std::cin.get();
和
std::cin.getline();
虽然;我知道如何使用它们,但不能理解为什么有两个? 我已经阅读了这个解释:
抱歉英语不好:(
getline
读取换行符然后丢弃它;而.get()
读取它然后将其留在输入队列中.. !!为什么每个人都做它做的事情?
答案 0 :(得分:-1)
"获得"只检索一个角色," getline"获取所有字符到行终止符。这是主要区别。
答案 1 :(得分:-1)
std::cin.get()
,在没有参数的情况下调用时,从输入中读取一个单个字符并将其返回。
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和http://en.cppreference.com/w/cpp/string/basic_string/getline。