C++输入和输出

C++的I/O由(stream)完成,常用的有class istream(输入流)、class ostream(输出流)。IOStream程序库定义了数个iostream全局对象:

对象型别说明
cinistream标准输入通道,OS将其常与键盘连接
coutostream标准输出通道,OS将其常与屏幕连接
cerrostream标准错误输出通道,与屏幕连接,缺省情况下无缓冲
clogostream标准日志通道,连接于cerr连接的设备,clog有缓冲
wcinwistream从标准输入通道读入宽字符数据
wcoutwostream将宽字符数据写到标准输出通道
wcerrwostream将宽字符数据写到标准错误输出通道
wclogwostream将宽字符日志信息写到标准日志通道


操控器是专门用来控制stream的对象,只会改变输入或输出方式。IOStream中常见的操控器:

操控器类别意义
endlostream输出’\n’并刷新output缓冲区
endsostream输出’\0’
flushostream刷新output缓冲区
wsistream读入并忽略空格


输入用的成员函数:

成员函数读取,直到…字符数添加结束符号
get(s,sum)不包括new line或EOF最多num-1
get(s,sum,t)不包括t或EOF最多num-1
getline(s,sum)包括new line或EOF最多num-1
getline(s,sum,t)包括t或EOF最多num-1
read(s,num)EOFnum
readsome(s,sum)EOF最多num


格式化输出

操控器作用
setiosflags(flags)将flags设为格式标志,调用相应stream的setf(flags)
resetiosflags(mask)清除mask所标示的一组标志
//程序前需要引入<iomanip>头文件
//输出"1.234"(遵循四舍六入五成双的原则,而不是四舍五入的原则)
cout << setiosflags(ios::fixed) << setprecision(3) << 1.2345 << endl;
//需要用resetiosflags()函数清除前面的输出格式
cout << resetiosflags(ios::fixed);
cout << setiosflags(ios::scientific) << 12345.0 << endl;//输出"1.23e+004"

setprecision(val),显示浮点数小数点后val位,不足补0。所谓“四舍六入五成双”是指当末位为5时,如果前一位是奇数,则进位;如果前一位是偶数,则舍去。关于格式化输出,需要引入<iomanip>头文件,详见这里

setiosflags的参数是该流的格式标志值,这个值由如下位掩码(ios枚举器)指定,并可用位或(|)运算符进行组合,如

setiosflags(ios::left | ios::dec | ios::showpoint)
参数作用
ios::skipws在输人中跳过空白。
ios::left左对齐值,用填充字符填充右边。
ios::right右对齐值;用填充字符填充左边(缺省对齐方式)。
ios::internal在指定任何引导标记或基之后增加填充字符。
ios::dec以基10(十进制)格式化数值(缺省进制)。
ios::oct以基8(八进制)格式化数值。
ios::hex以基16(十六进制)格式化数值。
ios::showbase以C++编译器能读的格式显示数值进制。
ios::noshowbase不显示数值进制。
ios::showpoint对浮点数值显示小数点和尾部的0。
ios::noshowpoint不需要输出小数点。
ios::uppercase对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E。
ios::nouppercase强制字母小写。
ios::showpos对于正数显示正号(+)。
ios::noshowpos强制省略正数前正号。
ios::scientific以科学格式显示浮点数值。
ios::fixed以定点格式显示浮点数值。
ios::unitbuf导致在每次插入之后ostream::osfx刷新该流。缺省地,cerr是缓冲的单元。
ios::stdio导致在每次插入之后ostream::osfx刷新该流的stdout和stderr。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值