首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >std::cin.getline( )与std::cin

std::cin.getline( )与std::cin
EN

Stack Overflow用户
提问于 2011-01-20 18:18:52
回答 5查看 64.4K关注 0票数 40

什么时候应该使用std::cin.getline()?它与std::cin有什么不同

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-20 18:34:58

在使用char*的情况下,std::cin.getline获取行,而不是std::cin获取第一个单词。

票数 25
EN

Stack Overflow用户

发布于 2011-01-20 20:38:51

让我们把std::cin.getline()拆开。首先是std::。这是标准库所在的命名空间。它有数百种类型、函数和对象。

std::cin就是这样一个对象。它是在<iostream>中定义的标准字符输入对象。它有自己的一些方法,但您也可以将其与许多免费函数一起使用。这些方法和函数中的大多数都是从标准输入中获取一个或多个字符的方法。

最后,.getline()std::cin (和其他类似对象)的一种方法。您告诉它应该从左侧的对象中获取多少个字符(这里是std::cin),以及将这些字符放在哪里。字符的确切数量可能会有所不同:.getline()会在三种情况下停止: 1.到达行尾2.输入中没有剩余的字符(在std::cin上不会正常发生,因为您可以继续键入) 3.读取最大字符数。

还有其他方法和函数可以与std::cin对象一起使用,例如

代码语言:javascript
复制
  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
票数 43
EN

Stack Overflow用户

发布于 2011-01-20 18:30:45

您是否阅读了任何文档(例如http://www.cplusplus.com/reference/string/getline/)?

基本上,直接使用std::cin (或者更一般地说,任何std::istream)来获得格式化的输入,例如int x; std::cin >> x;std::cin.getline()只是用来填充原始的char *缓冲区。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4745858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档