std::string s;
int i;
std::cin >> s; // Read a single word from std::cin
std::cin >> i; // Read a single number from std::cin
std::getline(std::cin, s); // Read an entire line (up to \n) from std::cin
std::cin.ignore(100); // Ignore the next 100 characters of std::cin
3 回答
如果是char *,std::cin.getline获取行,而不是
std::cin
获取第一个单词 .让我们分开
std::cin.getline()
. 首先,有std::
. 这是标准库所在的命名空间 . 它有数百种类型,功能和对象 .std::cin
就是这样一个对象 . 它是<iostream>
中定义的标准字符输入对象 . 它有自己的一些方法,但你也可以使用它与许多自由函数 . 大多数这些方法和函数都是从标准输入中获取一个或多个字符的方法 .最后,
.getline()
是std::cin
(以及其他类似对象)的一种方法 . 你告诉它应该从左侧的对象(这里是std::cin
)得到多少个字符,以及放置这些字符的位置 . 精确的字符数可以有所不同:.getline()
将在三种情况下停止:1 . 到达行的结尾2.输入中没有剩余字符(由于您可以继续输入,因此std::cin
上没有正常发生)3 . 读取最大字符数 .还有其他方法和功能可以与
std::cin
对象一起使用,例如您是否阅读过任何文档(例如http://www.cplusplus.com/reference/string/getline/)?
基本上,直接使用
std::cin
(或更一般地,任何std::istream
)以获得格式化的输入,例如,int x; std::cin >> x;
.std::cin.getline()
仅用于填充原始char *
缓冲区 .