首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cin.Getline不返回任何内容

cin.Getline不返回任何内容
EN

Stack Overflow用户
提问于 2013-03-27 13:44:35
回答 1查看 624关注 0票数 1

我正在努力学习c++。我现在手头拮据。我已经编写了这个简单的方法,它应该要求输入一个字符串,然后返回它。为此,我使用了cin.getLine()方法,但是在使用cin.getLine()之后,字符串没有打印出来。

代码语言:javascript
运行
复制
string getString(char string[])
{

  cout << "Please enter a string to process ";
  cin >> string;
  cout << "String in getString before process: " << string << "\n";
  cin.getline(string, STRINGSIZE);
  cout << "String after processing: " << string << "\n"; // here string is not printed
  return string;
}

有没有人能帮我弄清楚我做错了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 13:54:31

您首先使用cin >> string;将字符串读取到std::string,然后使用cin.getline(string, STREAMSIZE);再次从cin读取某些内容。这不是必需的,读取一次并返回:

代码语言:javascript
运行
复制
string getString(char string[]){
  cout << "Please enter a string to process ";
  cin >> string;
  cout << "String in getString before process: " << string << "\n";
  // process this, do whatever you describe as processing it
  cout << "String after processing: " << string << "\n"; // string is printed
  return string;
 }

否则,如果您想使用getline,请执行以下操作:

代码语言:javascript
运行
复制
  std::string name;

  std::cout << "Please, enter your full name: ";
  std::getline (std::cin,name); // or std::getline(std::cin,string, 'r'); to read
  //only to delimiter character 'r'
  std::cout << "Hello, " << name << "!\n";

所以要记住的是使用getlinecin,除非确实有特殊原因,否则不要同时使用这两者

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

https://stackoverflow.com/questions/15652613

复制
相关文章

相似问题

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