标准IO流cin与cout
来源:互联网 发布:猪八戒的前世今生 知乎 编辑:程序博客网 时间:2024/05/29 16:17
C++程序把输入和输出看做字节流,流,就是流动的输出。c++的标准IO流,有cin,cout,clog,cerr.
1.cin
void test()
{
char ch1,ch2;
cin.get(ch1);//读取一个字符
ch2 = cin.get();//读取一个字符
cin.get(ch1).get(ch2);//链式编程
char buf[1024];
cin.ignore(1);//忽略一个字符
cin.getline(buf, 1024);//读取一行
char ch = cin.get();//读取一个字符
cin.putback(ch);//将读取的字符放回缓冲区
char ch3 = cin.peek();//偷窥一个字符,缓冲区中的内容不减少
}
2.cout
out流对象,cout是console output的缩写,意为:控制台输出。
cout不是C++预定义的关键字,它是ostream流类的对象,在iostream中定义。流是流动的数据,cout流是流向显示器的数据。cout流中的数据时用流插入运算符“<<”顺序加入的。
用cout<<输出基本类型的数据时,可以不必考虑数据是什么类型,系统会判断数据的类型,并根据其类型选择调用与之匹配的运算符重载函数。这个过程是自动的,用于不必干预。
cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符,并刷新流。
在iostream中,只对“<<”和“>>”运算符用于标准类型数据的输入输出进行了重载,但未对用户声明的类型数据的输入输出进行重载。如果用于声明了新的类型,并希望用“<<”和“>>”运算符对其进行输入输出,需要对该数据类型进行运算符重载。
格式化输出:在输出数据时,有时需要按一定的格式输出。这有两种方法,一是使用控制符,二是使用流对象的成员函数。
cout中用于控制输出格式的成员函数:
流成员函数
与流成员函数作用相同的控制符
作用
precision()
setprecision()
设置精度
width()
setw()
设置字段宽度
fill()
setfill()
设置填充字符
serf()
setiosflag()
设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中的内容相同
unset()
resetioflags()
终止已设置的输出格式状态,在括号中应指定内容
流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时,要在前面加上类名ios和作用域运算符::
格式标志
作用
ios::left
输出数据在本域宽范围内向左对齐
ios::right
输出数据在本域宽范围内向右对齐
ios::internal
数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符补齐
ios::dec
设置整数的基数为10
ios::oct
设置整数的基数为8
ios::hex
设置整数的基数为16
ios::showbase
强制输出整数的基数(八进制以0开头,16进制以0X开头)
ios::showpoint
强制输出浮点数的小点和尾数0
ios::uppercase
在以科学计数法格式E和以十六进制输出字符时以大写表示
ios::showpos
正数显示+号
ios::scientific
浮点数以科学计数法格式输出
ios::fixed
浮点数以定点格式(小数形式输出)
ios::unitbuf
每次输出之后刷新所有的流
ios::stdio
每次输出之后清除stdout,stderr
控制符
作用
oct
设置数值的基数为8
dec
设置数值的基数为10
hex
设置数值的基础为16
setfill(ch)
设置填充字符,可以是字符常量或变量
setprecision(n)
设置浮点数的精度为n位,在以一般十进制小数
setw(n)
设置字段宽度为n位
setiosflags(ios::fixed)
设置浮点数以固定的小数位数显示
setiosflags(ios::scientific)
设置浮点数以科学计数法显示
setiosflags(ios::left)
输出数据左对齐
setiosflags(ios::right)
输出数据右对齐
setiosflags(ios::skipws)
忽略前导的空格
setiosflags(ios::uppercase)
数据以十六进制形式输出时字符以大写表写
setiosflags(ios::lowercase)
数据以十六进制形式输出时字符以小写表示
setiosflags(ios::showpos)
输出整数时显示+号
void test1()
{
cout << "23456789";
cout.flush();//刷新缓冲区
char ch='a';char ch1='b', ch2='c';
cout.put(ch);//输出一个字符
cout.put(ch).put(ch1).put(ch2);//链式编程
char *str = "12345679";
int len=7;
cout.write(str, len);//输出len个字符
}
void test2()//流成员函数
{
int num = 123;
cout.width(20);//设置宽度
cout.fill('#');//设置填充字符
cout.setf(ios::left);//设置左对齐
cout.unsetf(ios::dec);//卸载十进制
cout.setf(ios::hex);//设置16进制
cout << num << endl;
}
void test3()//使用控制符
{
int num = 123;
cout << setw(10) //设置宽度
<< setfill('#')//设置天长字符
<< setiosflags(ios::showbase)//设置显示0x
<< setiosflags(ios::left)//左对齐
<< hex//设置16进制
<< num << endl;
}
- 标准IO流cin与cout
- 标准输入输出流cin、cout
- c++标准输入输出流:cin和cout
- std::cout、std::cin与cout.cin
- C++ cin与cout
- C++ cin与cout
- 关于cin与cout
- 浅谈cin与cout
- cin与cout
- cin与cout
- cout与cin
- 【C/C++】Cin与Cout
- cin,cout与scanf,printf
- cin/cout
- cin & cout
- cin & cout
- cin &&cout
- cin cout
- 微信开发之事件推送与被动回复
- Linux虚拟地址空间布局
- git fatal: refusing to merge unrelated histories
- android 广播详解与实例(Broad Receiver)
- npm 常用命令详解
- 标准IO流cin与cout
- 38. Count and Say
- 常见开源加密算法库
- docker命令
- Android反编译
- 股票数据的获取分析
- NOIP2007提高组——矩阵取数游戏(game)
- datagrid选中行
- 【js】日期字符串比较大小