C++ 标准IO

缓冲是指在内存里有一片缓冲区域,将输出的内容先缓存到缓冲区域,等到缓冲区满或者手动刷新缓冲区时,再写到硬盘上.

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

cout是console output的缩写,cout不是C++预定义的关键字,它是ostream流类的对象,在iostream中定义。

cerr,clog流对象是标准错误流.二者的区别是cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出。

标准输入函数
标准输入附属到标准输入设备,通常是键盘

函数说明
cin.get()
cin.getline()
cin.ignore()
cin.peek()
cin.putback()
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
	string str = "Hello C++";

	cout << str << endl;
	system("pause");
	return EXIT_SUCCESS;
}

标准输出函数

函数描述
cout.flush()刷新缓存区(linux)
cout.put()向缓存区写字符
cout.write()
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
	string str;
	cout << "请输入您的名称: ";
	cin >> str;
	cout << "您的名称是: " << str << endl;
	system("pause");
	return EXIT_SUCCESS;
}


标准错误流

cerr一般附属到错误设备(也是显示屏),但是cerr是非缓冲的,每个流到cerr都会立刻输出

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
	string str = "Unable to read....";

	cerr << "Error message : " << str << endl;
	system("pause");
	return EXIT_SUCCESS;
}

标准日志流

clog附属到标准错误设备(显示屏),但是clog对象是缓冲的,只有缓冲区满或者刷新时才会输出.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
	string str = "Unable to read....";

	clog << "Error message : " << str << endl;
	system("pause");
	return EXIT_SUCCESS;
}

cerr流来显示错误信息,clog来打印日志

格式化输出
操纵符(manipulator)
格式化布尔值boolalpha

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
	cout << true << endl;
	cout << boolalpha << true << endl;
	system("pause");
	return EXIT_SUCCESS;
}

<iostream>中操纵符

操纵符描述
boolalpha将true和false显示为字符串,默认为noboolalpha
showbase对整型值输出表示进制的前缀,默认为noshowbase
showpoint显示小数点,noshowpoint
showpos对非负数显示+号,默认为noshowpos
uppercase十六进制中打印0X,科学计数法中打印E,nouppercase为小写0x和e
dec十进制
hex十六进制
oct八进制
left左对齐
right右对齐
internal符号和值之间填充字符
fixed浮点值显示为十进制
scientific浮点值显示为科学计数法
hexfloat浮点值显示为十六进制
hexfloat浮点值显示为八进制
defaultfloat重置浮点值为十进制
unitbuf每次操作后都刷新缓冲区,默认nounitbuf
skipws输入运算符跳过空白符,noskipws
flush刷新缓冲区
ends插入空字符,然后刷新缓冲区
endl插入换行,然后刷新缓冲区

<iomanip>中的操纵符

操纵符描述
setfill(ch)用ch填充空白
setprecision(n)设置浮点精度
setw(w)设置宽度
setbase(b)将整数输出为二进制
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
using namespace std;

int main(int argc, char** argv)
{
	cout << sqrt(200) << endl;//默认状态
	cout << setprecision(2) << sqrt(200) << endl;//设置精度
	cout << scientific << sqrt(200) << endl;//科学计数
	system("pause");
	return EXIT_SUCCESS;
}


格式成员函数

函数1函数2描述
precision(n)setprecision(n)设置精度
width(n)setw(n)设置字段宽
fill©setfill©设置填充字符
setf()setiosflags()设置输出格式状态
unsetf()resetioflags()终止格式状态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值