【c++知识点】I/O操作

【概念】
1、流是被称为“对象”的特殊变量。可将流连接到的文件视为流的值,流变量的值可以被修改
2、输入流:流向程序(cin>>a;ifstream>>file;)
3、输出流:流出程序(cout<<a;ofstream<<file;)
4、#include<fstream>用于文件I/O(文件读取写入),位于std命名空间;
5、#include<iostream>用于cout&cin(键盘输入屏幕输出),位于std命名空间;
6、#include<cstdlib>用于exit(执行状态),位于std命名空间;
7、流作为函数形参使用时,必须传引用,不能传值

【文件I/O操作】
1、读取文件
ifstream ifs;//声明ifstream类
ifs.open("infile.dat");//文件名用双引号
if(ifs.fail()){//检查文件是否打开,调用失败返回true
exit(1);//终止程序,参数1返回错误,参数0返回成功
};
cout<<"读取内容:"<<ifs;
ifs.close();//关闭流
2、写入文件
ofstream ofs;//声明ofstream类
ofs.open("outfile.dat");//不存在则创建,存在则覆写
ofs.open("outfile.dat",ios::app);//参数表示追加到文件尾,引入<iostream>
if(ofs.fail()){//检查文件是否打开,调用失败返回true
exit(1);//终止程序,参数1返回错误,参数0返回成功
};
ofs<<"Hello World"<<endl;
ofs.close();//关闭流
3、读取文件尾(支持int\double\char类型)
ifstream ifs;
int next,sum=0,count=0;
while(ifs>>next){//输入数字的指令或布尔值
   sum=sum+next;
   count++;
}
ifs.close();

【格式化输出】
任何输出流(cout、ofstream)都可以格式化

1、设置浮点数精度
cout.precision(2);ofstream.precision(3);

2、设置宽度
cout.width(4);ofstream.width(4);

3、setf是set_flags(设置标志)的缩写
cout.setf(ios::参数);ofstream.setf(ios::参数);
ios::fixed 不用e计数法显示浮点数
ios::scientific 使用e计数法显示浮点数
ios::showpoint 始终显示浮点数的.和尾随的0
ios::showpos 正整数前显示+
ios::right 调用width()函数,下一项右对齐
ios::left 调用width()函数,下一项左对齐
注意:即使不设置,负数前也会显示-

4、取消标志
cout.unsetf(ios::参数);

【操纵元】endl;setw(4);setprecision(3);
1、独立存在,是以非传统方式调用的函数
2、调用以后,本身又会调用一个成员函数
3、位于操作符<<之后,形似下一个输出项
4、可以有参数,也可无参数
5、预编译指令#include<iomanip>,位于std命名空间;

【字符I/O】
所有数据都作为字符数据输入和输出
1、输入流get()
cin.get();ifstream.get();//两者相用法同
读取一个输入的任意字符,并存储到char变量。对比:使用提取操作符>>时忽略空白

2、输出流put()输出一个字符

3、输入流putback函数
cin.putback(char字符);//参数是能求值为char的表达式
char next;
ifstream ifs;ofstream ofs;
ifs.get(next);
while(next!=' '){
  ofs.put(next);
  ifs.get(next);
}
ifs.putback(next);

4、万用型流参数
使用istream类型,需引入#include<fstream>,位于std命名空间
void newLine(istream &is=cin){
  char symbol;
  do{
     is.get(symbol);
  }(symbol!='\n');
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值