首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getline任务

getline任务
EN

Stack Overflow用户
提问于 2016-10-02 19:35:16
回答 2查看 70关注 0票数 0

getline函数可以接受三个参数。首先是对象cin。第二个是用类string定义的对象。第三种是分隔符。

  1. 如果找不到分隔符字符,会发生什么?
  2. 例如,我选择了字符't'作为delimiter.Then,用户输入了"Jonathan""han"保留在缓冲区中还是"han\n"保留在缓冲区中?(我看到getline每次都在缓冲区中删除换行符,虽然分隔符不是换行符,但我不能确保这一点。)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-02 19:41:42

这在std::getline中有记录。

2)从输入中提取字符,并将它们追加到str,直到出现下列情况之一(按所列顺序检查) ( a)输入的文件结束条件,在这种情况下,getline设置eofbit. ( b)下一个可用的输入字符是delim,由以下特征测试:eq(c,delim),在这种情况下,分隔符字符从输入中提取,但不附加到str。

对于std::getline(std::cin, str, 't');,这意味着str将包含Jonat将被提取和丢弃,将han\n保存在输入缓冲区中。

票数 0
EN

Stack Overflow用户

发布于 2016-10-02 20:13:19

代码语言:javascript
复制
#include <iostream>
#include <string>

using namespace std;

int main(void){

string x;
char y;

getline(cin, x, 'n');

cin >> y;

return 0;

}

如果用户输入"John",那么"\n“保留在buffer.Finally中,用户不能输入y的字符。但是,用户可以为y输入一个字符。换行符到哪里?

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

https://stackoverflow.com/questions/39820865

复制
相关文章

相似问题

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