int nTemp = cin.rdbuf()->in_avail(); cin.ignore( nTemp ); 是什么意思?

[复制链接]
查看11 | 回复3 | 2013-5-28 16:36:26 | 显示全部楼层 |阅读模式
我来补全一下一楼的答案吧。 cin.rdbuf()应该是指向了输入流。后面的in_avail()应该是计算这个流的长度。int nTemp = cin.rdbuf()->in_avail();就是计算输入流缓冲区还有多长的东西没有读入。 cin.ignore( nTemp );就是把nTemp这么多的长度忽略掉所以总体来说就是把输入流的剩余部分全部忽略掉...
回复

使用道具 举报

千问 | 2013-5-28 16:36:26 | 显示全部楼层
多贴出来点东西啊。int nTemp 定义了一个int型变量cin 应该是输入流cin.rdbuf() 是 cin 的一个函数,这个函数的返回值应该是一个类指针,因为这个返回值后面还有一个函数: ->in_avail() ,而in_avail() 的返回值为int型,赋给定义的int型变量nTemp 。以上...
回复

使用道具 举报

千问 | 2013-5-28 16:36:26 | 显示全部楼层
也是不太明白,翻了翻资料找到了答案如下:Cin.ignore()方法cin.ignore(20,'c')是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到20或者被抛弃的字符是'c',则cin.ignore() 函数执行终止;否则,它继续等待。它...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行