C++二级复习7(输入输出流)

C++二级复习7(输入输出流)

1、C++输入与输出主要包括的方面:
a.标准IO:对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示屏。
b.文件IO:以外存(磁盘、光盘)为对象进行输入输出。
c.(字符串输入输出)串IO:对内存中指定的空间进行输入输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)

2、C语言使用函数进行输入输出,C++使用类对象。

3、与类库有关的头文件

iostream							包含基本信息
fstream								文件IO
strstream							串IO
stdiostream							C/C++混合使用IO
iomanip								格式化IO

4、iostream头文件中定义的4种流对象

对象	含义				对应设备					C语言中对应的标准文件
cin 	标准输入流			键盘					stdin
cout 	标准输出流  			屏幕					stdout
cerr  	标准错误流			屏幕					stderr
clog 	标准错误流  			屏幕					stderr

5、标准输出流
cout流对象(console output)
cout流在内存中开放了一个缓冲区,用来存放流中的数据。当cout流中插入一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后,插入一个换行符,并刷新流(清空缓冲区)。如果是插入’\n’,则值输出所有内容和换行,不刷新流(此点视编译系统而定)
cerr流对象(console error)
在控制台上显示错误信息,不经缓冲区直接在显示器上显示相关信息。
clog流对象(console log)
同cerr差不多,将信息存放在缓冲区中,缓冲区慢后或遇到endl时,向显示器输出。

6、C++标准格式输出,另起一文专门用来学习和参考

7、用流成员函数 put 输出字符
ostream中专门用来输出单个字符的成员函数,put 函数参数可以是字符或字符的ASCII代码(也可以是一个整型表达式)

cout.put('a');
cout.put(65+32);
#include <iostream>
using namespace std;
int main()
{
	char * p = "ABCD";
	for(int i=3;i>=0;i--)
		cout.put(*(p+i));
	cout.put('\n');
	return 0;
}

ostream 中保留了C语言中起同样作用的 puchar() 函数。

8、标准输入流

a. cin流
" >> " 从流中提取数据时,通常跳过输入流中的 空格、Tab键、换行符等空白字符

当按下 Enter 键后,该行数据才被送入键盘缓冲区,形成输入流,>>才能提取数据

当遇到无效字符或文件结束符时,cin处于出错状态,无法正常提取数据。一般以Ctrl+Z 或 Ctrl+D表示文件结束。

当cin处于出错状态时,测试cin的值,可以得到 0 ,若正常状态,cin 是一个非零值。

if(!cin)
	cout<<"error"<<endl;

b. 用于字符输入的流成员函数
源自istream 的一些成员函数,

get 函数读入一个字符,

无参形式:cin.get()
输入流中提取一个字符(包括空白字符),函数返回值就是读取的字符。遇到文件结束符,就返回EOF
while( (c = cin.get() ) !=EOF)
	cin.get();

getchar() 函数与之类似,C++可用

有一个参数的形式:
cin.get(ch);
从输入流中读取一个值,赋给字符 ch ,返回值成功返回非零值,失败返回 0(文件结束符)
有3个参数的形式:
cin.get(字符数组,字符个数,终止字符) 或 cin.get(字符指针,字符个数n,终止字符)
从输入流中读取 n-1 个字符,赋给指定的字符数组或指针指向的数组。若读完前遇到终止字符,就结束。返回值,成功返回非零值,失败返回 0(文件结束符)

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

getline( 字符数组(或字符指针),字符个数n, 终止标志字符)
用法同3个参数的get

c. istream 的其他成员函数

eof函数(end of file)
表示“文件结束”,若到达文件末尾(或遇文件结束符),eof 函数值为非零值,否则为 0

char c;
while( !cin.eof() )
	if( ( c = cin.get() )!=' ')
		cout.put(c);

peek 函数
观测下一个字符,调用形式

c = cin.peek();

cin.peek的函数的返回值是返回指向的当前字符,只是观测,指针位置停留在当前位置,不会后移。访问时文件结束符,函数值为EOF(-1)

putback 函数
调用形式为

cin.putback(ch);

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

ignore 函数

cin.ignore(n,终止字符);

作用是,跳过输入流中 n 个字符,或遇到指定的终止字符时,提前结束(此时跳过包括终止字符在内的若干字符)

cin.ignore(5,'A');
跳过输入流中5个字符,或遇到‘A’后就不再跳了
ignore();
也可以不带参数或带一个,等价于 ignore(1,EOF)
cin.get(ch,20,'\');
ignore();
cin,get(ch,20,'\');

执行完第一个语句后,输入流中仍有‘\’,若无第二个语句,第三个语句遇到就直接结束了。此时就可以,用第二个语句跳过 ’ \ ’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值