getline函数可以接受三个参数。首先是对象cin。第二个是用类string定义的对象。第三种是分隔符。
't'作为delimiter.Then,用户输入了"Jonathan"。"han"保留在缓冲区中还是"han\n"保留在缓冲区中?(我看到getline每次都在缓冲区中删除换行符,虽然分隔符不是换行符,但我不能确保这一点。)发布于 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将包含Jona,t将被提取和丢弃,将han\n保存在输入缓冲区中。
发布于 2016-10-02 20:13:19
#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输入一个字符。换行符到哪里?
https://stackoverflow.com/questions/39820865
复制相似问题