概述
【概念】
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、读取文件尾(支持intdoublechar类型)
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');
}
最后
以上就是俏皮钥匙为你收集整理的【c++知识点】I/O操作的全部内容,希望文章能够帮你解决【c++知识点】I/O操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复