C++输入输出流

输入/输出流类:iostream---------i input(输入) o output(输出) stream:流

iostream:

istream类:输入流类-------------cin:输入流类的对象

ostream类:输出流类------------cout:输出流类的对象

1 输入流

数据是从键盘或显示器流向输入缓冲区中,最后刷新了再流向内存

输入流:istream

istream实例化了cin对象

重载了运算符:>>

输入格式:

cin>>变量1;

cin>>变量1>>变量2>>变量3.........;

原型:

istream &cin >>基本的数据类型;

istream &cin >>int;

istream &cin >>char;

.......

注:

如果需要一次性输入多个数据,那么多个数据需要用空格进行间隔

另外需要输入回车,把输入的内容刷新到内存中

2 输出流

数据是从内存流向输出缓冲区,刷新时再从输出缓冲区流向终端或显示器

缓冲区的大小:

#define BUFSIZ 512个字节

2.1 格式

输出流:ostream

ostream实例化了cout对象、cerr对象(发生一些错误就会调用cerr输出错误信息)、clog对象(输出一些日志信息)

重载了运算符:<<

输出格式:

cout<<数据1;

cout<<数据1<<数据2<<数据3,........;

原型:

ostream类中:

ostream & operator <<(int)

{

ostream cout;

.....

return cout;

}

ostream & operator <<(char)

{

}

ostream &cout << 基本的数据类型;

ostream &cout << int ;

ostream &cout << char;

ostream &cout << unsigned int;

ostream &cout << char *;

ostream &cout << const char *;

ostream &cout << float;

.........

注:

1)当输出遇到endl时,会刷新输出缓冲区

2)当流对象使用完或超出作用域时,也会刷新输出缓冲区

3)当输出缓冲区装满时,也会刷新一次缓冲区

2.2 采用格式化输出

C语言的格式化输出也支持:\n、\r、.......

十进制形式输出:<iomanip>

dec:十进制

oct:八进制

hex:十六进制

....

示例:

#include <iostream>  
#include<string>  
#include <iomanip> //不要忘记包含此头文件  
using namespace std;  
int main()  
 {   
   int a;  
   cout<<"input a:";  
   cin>>a;  
   cout<<"dec:"<<dec<<a<<endl; //以上进制形式输出整数  
   cout<<"hex:"<<hex<<a<<endl; //以十六进制形式输出整数a  
   cout<<"oct:"<<setbase(8)<<a<<endl;//以八进制形式输出整数a  
   string pt= "China";         //pt指向字符串"China"  
   cout<<setw(10)<<pt<<endl; //指定域宽为10,输出字符串  
   cout<<setfill('*')<<setw(10)<<pt<<endl;//指定域宽10,输出字符串,空白处以"*"填充  
   double pi=22.0/7.0; //计算pi值  
   cout<<setiosflags(ios::scientific)<<setprecision(8);//按指数形式输出,8位小数  
   cout<<"pi="<<pi<<endl; //输出pi值  
   cout<<"pi="<<setprecision(4)<<pi<<endl;//改为4位小数  
   cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;//改为小数形式输出,精度为4   
   cout<<"pi="<<fixed<<pi<<endl;//fixed确定小数点后精度为4   



cout.setf(ios::showbase); //设置输出时的基数符号  
   cout<<"dec:"<<a<<endl; //默认以十进制形式输出a  
   cout.unsetf(ios::dec); //终止十进制的格式设置  
   cout.setf(ios::hex); //设置以十六进制输出的状态  
   cout<<"hex:"<<a<<endl; //以十六进制形式输出a  
   cout.unsetf(ios::hex); //终止十六进制的格式设置  
   cout.setf(ios::oct); //设置以八进制输出的状态  
   cout<<"oct:"<<a<<endl; //以八进制形式输出a  
   cout.unsetf(ios::oct); //终止以八进制的输出格式设置  
   char *pt="China"; //pt指向字符串"china"  
   cout.width(10); //指定域宽为10  
   cout<<pt<<endl; //输出字符串  
   cout.width(10); //指定域宽为10  
   cout.fill('*'); //指定空白处以'*'填充  
   cout<<pt<<endl; //输出字符串  
   double pi=22.0/7.0; //计算pi值  
   cout.setf(ios::scientific);//指定用科学记数法输出  
   cout<<"pi="; //输出"pi="  
   cout.width(14); //指定域宽为14  
   cout<<pi<<endl; //输出"pi值  
   cout.unsetf(ios::scientific); //终止科学记数法状态  
   cout.setf(ios::fixed); //指定用定点形式输出  
   cout.width(12); //指定域宽为12  
   cout.setf(ios::showpos); //在输出正数时显示"+"号  
   cout.setf(ios::internal); //数符出现在左侧  
   cout.precision(6); //保留6位小数  
   cout<<pi<<endl; //输出pi,注意数符"+"的位置  
   return 0;   
}  

输出结果如下:

相关推荐
湫ccc2 分钟前
《Python基础》之函数的用法
开发语言·python
lly20240612 分钟前
C# 类(Class)
开发语言
梦深时有鹿18 分钟前
C#基础练习61-65
开发语言·c#
张声录138 分钟前
使用client-go在命令空间test里面对pod进行操作
开发语言·后端·golang
菜鸟小贤贤1 小时前
pyhton+yaml+pytest+allure框架封装-全局变量接口关联
开发语言·python·macos·自动化·pytest
南东山人1 小时前
python问题解决-外部模块明明安装了,却总是无法找到
开发语言·python
ThetaarSofVenice1 小时前
【Java从入门到放弃 之 Java程序基础】
java·开发语言·python
夏子曦2 小时前
java——Tomcat调优策略
java·开发语言·tomcat
会编程的果子君2 小时前
Python语法基础(一)
开发语言·python·html
重生之我在字节当程序员2 小时前
c++中的lambda表达式!
开发语言·c++