什么时候应该std::cin.getline()使用?它有什么不同std::cin?
MSa*_*ers 34
让我们std::cin.getline()分开吧.首先,有std::.这是标准库所在的命名空间.它有数百种类型,功能和对象.
std::cin是这样一个对象.它是标准的字符输入对象,定义于<iostream>.它有自己的一些方法,但你也可以使用它与许多自由函数.大多数这些方法和函数都是从标准输入中获取一个或多个字符的方法.
最后,.getline()是std::cin(和其他类似对象)的一种这样的方法.你告诉它应该从左侧(std::cin这里)的对象获得多少个字符,以及放置这些字符的位置.精确的字符数可以有所不同:.getline() 将在三种情况下停止:1.到达行的结尾2.输入中没有剩余字符(std::cin由于您可以继续键入,因此通常不会发生)3.最大值读取字符数.
还有其他方法和功能可以与std::cin对象一起使用,例如
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
Run Code Online (Sandbox Code Playgroud)
小智 20
在使用char*的情况下,std::cin.getline获取行,而不是std::cin获得第一个单词.
您是否阅读过任何文档(例如http://www.cplusplus.com/reference/string/getline/)?
基本上,std::cin(或更一般地,任何std::istream)直接使用以获得格式化输入,例如int x; std::cin >> x;. std::cin.getline()仅用于填充原始char *缓冲区.
| 归档时间: |
|
| 查看次数: |
49351 次 |
| 最近记录: |