千家信息网

如何解析C++中IO流的输入输出流

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了如何解析C++中IO流的输入输出流,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。介绍流: 若干字节数据从一端到另一端我们叫做流例如:操作文
千家信息网最后更新 2026年11月03日如何解析C++中IO流的输入输出流

本篇文章为大家展示了如何解析C++中IO流的输入输出流,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

介绍

流: 若干字节数据从一端到另一端我们叫做流

例如:操作文件,从程序到文件,数据的流动的操作称为流操作

流类体系

专门处理输入输出流、字符流、文件流,包含有:

  • 流对象

  • 流运算符 >> <<

输入/出流对象 + 流运算符 >> <<---处理输入输出的数据

字符流对象 + 流运算符 >> << ---处理字符流

文件的对象 + 流运算符 >> << ---读写文件

基本输入、输出流

istream 类---cin 输入

ostream类---cout 输出

tip:输出流除了cout外,还有一些别的对象(效果和cout一样)

  • cerr ---标准出错

  • clog ---日志文件输出

#include using namespace std;void testostream()     //output {        //freopen()        cout << "标准输出" << endl;               //cin/cout都可以重定向        cerr << "标准错误输出" << endl;     //不能重定向 当觉得程序可能出错时用cerr输出,标识作用        clog << "日志文件输出" << endl;  //可以重定向为文件}int main(){     testostream();}/*输出*/ /*标准输出 标准错误输出 日志文件输出*/

freopen

把程序的输入、输出重定向为文件

重定向是文件中的数据的格式要与程序读取的格式一致

输入重定向

#include#includeint main(){     freopen("1.txt","r",stdin);//参数:文件名 读写方式 流    int a,b;    scanf("%d%d",&a,&b);       //把基本输入定向为文件,程序所有的输入由文件完成    std::cout<

输出重定向

#include#includeint main(){     freopen("1.txt","r",stdin);//参数:文件名 读写方式 流    int a,b;    scanf("%d%d",&a,&b);       //把基本输入定向为文件,程序所有的输入由文件完成    std::cout<

字符类的处理

  • 正常的操作

  • 通过IO流对象调用成员函数的方式

单个字符和字符串的输出处理

//调用成员函数的方式传常量、变量都可以void testostream()    {//单个字符的输出    cout.put('a');          //传常量    通过IO流对象调用成员函数的方式        cout << 'a' << endl;    //正常的输出方式         char c = 'C';        cout.put(c);    //传变量        cout << c << endl;//多个字符/字符串的输出        cout.write("ILoveyou",4); /*直接写入输出 后面的参数:指定长度,超过长度的部分不做输                                 出截取输出没有'\0',只截取了前面4位*/}int main(){     testostream();}/*输出*/ /*aa  CC  ILov*/

单个字符和字符串的输入处理

void testostream(){//单个字符的输入        /*  char c;                c=cin.get();                cout.put(c);    用中间变量接收返回值,再做输出*/        cout.put(cin.get());    //要处理回车        cout << endl; //多个字符/字符串的输入        cout << "字符串的处理"<

注意不能用来处理string

 string text; cin.getline(text,20);    //报错,不能处理string,只能处理char*

格式控制字符

包含头文件

常用的格式控制,一种是调用成员函数方式,一种流控制字符去做

  • 设置有效位数: setprecision(n)

  • 设置精度: fixed 结合 setprecision 使用

tip:流控制字符---c++用来控制格式的操作

设置格式

int main(){         double pi = 34.12343;        cout << "设置有效位数是:" << setprecision(4) << pi << endl;     //从整数位开始算        cout << "有效小数位:" << fixed << setprecision(4) << pi << endl;//从小数位开始算 //所有的流控制符都会对应一个成员函数的方式        cout.precision(4);         cout << "有效小数位:" << pi;/*设置完流格式不一定要立即输出,                                 可以缓慢输出(在下一行输出)*/         double pi = 34.12369;        cout << "设置有效位数是:" << setprecision(4) << pi << endl;        cout << "有效小数位:" << fixed << setprecision(4) << pi << endl;        cout.precision(4); //所有的流控制符都会对应一个成员函数的方式        cout << "有效小数位:" << pi;}/*输出   四舍五入 */ /* 设置有效位数是:34.12   有效小数位:34.1234   有效小数位:34.1234    设置有效位数是:34.12   有效小数位:34.1237   有效小数位:34.1237    */

进制输出

int main(){        cout << hex << 32 << endl;  //16进制        cout << oct << 15 << endl;  //8进制输出//流控制字符的方式        cout << setbase(2) << 7 << endl; //2进制无效,不能是任意进制,任意进制的默认10进制输出        }/*输出*/ /*20  17  7*/

对齐方式和数据的宽度问题 制表符 '\t'

限制每个数据的位数不足补空格

1. 8位制表,不足8位 补空格

2. 超过8位,按照16位制表

//默认右对齐int main(){           cout << setw(8) << "123" << setw(8) << "12344" << setw(8) << "3444" << endl;   cout << setiosflags(ios::left);//ios::right右对齐 ios::left左对齐 数据不够用空格占位   cout << setw(8) << "123" << setw(8) << "12344" << setw(8) << "3444" << endl;   /*cout.width(8);    cout<<"123"<<"123"<<"666";    调用成员函数的方式,只能管一个制表    }/*输出*/     123   12344    3444 //默认是右对齐方式123     12344   3444 123     123666

上述内容就是如何解析C++中IO流的输入输出流,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

输出 字符 文件 输入 有效 方式 处理 函数 小数 小数位 控制 字符串 对象 成员 数据 格式 进制 位数 程序 标准 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网络科技 深圳九邦互联网科技有限公司 互联网科技有限公司经营范围 科技与互联网发展 广西互联网科技公司 太原新华互联网科技学校怎么样 互联网科技与管理 互联网科技与大数据专业 华夏恒生科技与互联网科技 深圳无忧互联网科技 互联网科技数字货币 福仕德教育科技互联网 广西泛欧互联网科技有限公司 深圳互联网科技园地址 北京品多多互联网科技有限公司 平安好医生打造互联网科技医疗 科技互联网专业务虚会材料 东风日产互联网科技公司叫什么 互联网科技创新方面的资料 互联网科技网站 互联网科技公司需要的职位 广州优美互联网科技 银川新华互联网科技职业技术培训学校图片 互联网科技项目计划书材料类 互联网为啥属于高科技 宜昌元轩互联网科技有限公司 宇信科技在杭州互联网排第几 美国五大互联网科技公司市值多少 北京品多多互联网科技有限公司
0