C++资料(七)——输入输出流

标准输出流

cerr流对象

ceer流对象是标准出错信息流。ceer的作用是想标准出错设备输出相关出错信息。

clog流对象

clog流对象也是标准出错信息流,它与ceer的作用相同,都是在终端显示器上显示出错信息。它们间的区别是:ceer是不经缓冲区直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇到endl时向显示器输出。

标准输入流

用于字符输入的流成员函数

1.用get函数读入一个字符
(1)不带参数的get函数:cin.get()
(2)有一个参数的get函数:cin.get(ch)
(3)有三个参数的get函数:cin.get(字符数组,字符个数n,终止字符) 或 cin.get(字符指针,字符个数n,终止字符)

2.用成员函数getline函数读入一行字符

cin.getline(字符数组(或字符指针),字符个数n,终止标志字符)

istream类的其他成员函数

1.eof函数

#include<iostream>
using namespace std;
int main(){
	char c;
	while(!cin.eof())					//eof()为假表示未遇文件结束符
		if((c=cin.get())!=' ')			//检查读入的字符是否空格字符
			cout.put(c);
	return 0;
}

运行结果:

C++ is interesting(输入字符串)
C++isinteresting(把其中非空格字符输出)

2.peek函数

c=cin.peek;

peek函数的作用是观测下一个字符,但只是观测,指针任停留在当前位置,如果要观测的字符是文件结束符,而函数值是EOF(即-1)

3.putback函数

cin.putback(ch);

其作用是将前面用get或getline函数从输出流中读取的字符ch返回到输入流,插入到当前指针位置,以供后面读取

4.ignore函数

cin.ignore(n,终止字符)

作用是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束

对数据文件的操作与文件流

文件流与文件流对象

文件流本身不是文件,而只是以文件为输入输出对象的流。若要对磁盘文件输入输出,就必须通过文件流来实现。

文件操作的文件类:

  1. ifstream类,是从istream类派生的。用来支持从磁盘文件的输入。
  2. ofstream类,是从ostream类派生的。用来支持从磁盘文件的输出。
  3. fstream类,是从iostream类派生的。用来支持对磁盘文件的输入输出。

文件的打开与关闭

1.打开磁盘文件

(1)调用文件流的成员函数open。
一般形式:

文件流对象.open(磁盘文件名,输入输出方式)

(2)在定义文件流对象是指定参数
例:

ostream outfile ("f1.dat",ios::out);

2.关闭磁盘文件

outfile.close();

对二进制文件的操作

1.用成员函数read和write读写二进制文件
原型为:

istream& read(char *buffer,int len);
ostream& write(const char *buffer,int len);

2.与文件指针有关的流成员函数
在磁盘文件中有一个文件读写位置标记(简称文件位置标记或文件标记),来指明当前进行读写的位置。在从文件输入时每读入一个字节,该位置就向后移动一个字节。在输出时每向文件输出一个字节,位置标记也向移动一个字节,随着输出文件中字节不断增加,位置不断后移。对于二进制文件,允许对位置标记进行控制,使它使用户的意图移动到所需的位置,以便在该位置上进行读写。

字符串流

1.建立输出字符串流对象
原型:

ostrstream::ostrstream(char *buffer,int n,int mode=ios::out);

2.建立输入字符串流对象
原型:

istrstream::istrstream(char *buffer);
istrstream::istrstream(char *buffer,int n);

3.建立输入输出字符串流对象
原型:

strstream::strstream(char *buffer,int n,int mode);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FFFPAG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值