首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cin的问题

cin的问题
EN

Stack Overflow用户
提问于 2014-02-08 14:28:35
回答 2查看 122关注 0票数 0

我以两种不同的方式使用cin :一种方式是使用cin (重载)>>变量,另一种方式是使用一个名为read的函数,该函数接受一个istream。

我有的代码是:

代码语言:javascript
复制
cin >> string6;
cout << string6; 
string7.read(cin); 
cout << string7;

我认为我遇到的问题是,string6在cin中剩下的内容都用于string7 (如果我读入"Hello“,后面跟着^D^D来表示输入的结束,我非常确定^D正在被读入string7),所以我不能用string7 7.read()读取用户输入。如何解决此问题?

编辑: String 6/String 7是我的String()类的变量,read是String的成员函数。

EN

回答 2

Stack Overflow用户

发布于 2014-02-08 14:57:54

我没有你的代码,所以我不能测试它,但这可能会起作用:

代码语言:javascript
复制
istream&  ignore ( streamsize n = 1, int delim = EOF );

从输入序列中提取字符并将其丢弃。

代码语言:javascript
复制
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
票数 0
EN

Stack Overflow用户

发布于 2014-02-08 15:02:43

"cin >>“将一直读到下一个换行符。您可以使用cin.ignore()删除字符。您还可以使用cin.peek()来检查当前流的前端是什么。

所以,

代码语言:javascript
复制
if( cin.peek() == '^D' )
{
    cin.ignore();
}

将“^D”替换为实际代码。你也可以像这样做

代码语言:javascript
复制
while( !isalpha( cin.peek() ) )
{
    cin.ignore();
}

以确保cin从字母字符开始。

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

https://stackoverflow.com/questions/21642807

复制
相关文章

相似问题

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