istream函数
墨初 知识笔记 162阅读
istream 类成员函数是什么?
答:C++ 标准库里有针对外设输入操作进行处理的类—— istream 。 而常用的cin则是 istream 的类对象。 因此实际上我们可以重新定义新的输入流对象代替cin对输入进行操作。 而我们常用的 istream 类成员函数有如下一些:
istream可以作为返回类型和参数传递吗?
答:另外需要注意的是istream类的拷贝构造函数和赋值函数也都是保护类型的,所以istream是不允许拷贝或者赋值的,所以它也不能直接作为返回类型和参数传递,很多时候需要使用引用来进行传递。
istream返回值不是引用,为什么要显示的删掉拷贝构造?
答:至于为什么这里返回的是引用呢? 也就是当返回值不是引用时,就会调用拷贝构造函数,但是看上图可知道 istream和ostream的拷贝构造都被显示的删掉了! ! 那为什么要显示的删掉拷贝构造呢? 如果返回不是引用,那么cin >> a产生一个istream的对象(开辟一段新空间),又作为 >> b左侧的istream的对象,这两个对象不能保证是同一个对象。
如何在istream中读取一个字符或读入原始的输入数据?
答:如果希望读入上述字符,或读入原始的输入数据,一种方法是使用istream的get ()成员函数来读取一个字符,另一种方法是使用istream的getline ()成员函数来读取多个字符。 istream的read (char* addr, streamsize size)函数从输入流中提取size个连续的字节,并将其放在地址从addr开始的内存中。