I/O流
I/O流的打开模式:
ios::in 以读权限打开文件,不存在则失败,存在不清空
ios::out 以写权限打开文件,不存在则创建,存在则清空
ios::app 打开文件用于追加,不存在则创建,存在不清空
ios::binary 以二进制模式进行读写
ios::ate 打开时定位到文件末尾
ios::trunc 打开文件时清空
fstream/ifstream/ofstream 类用于进行文件操作。
构造函数或成员函数 open 用于打开文件
good成员函数检查流是否可用
eof成员函数用于输入流是否结束
>> 操作符用于从文件中读取数据到变量
<< 操作符用于输出数据到文件
IO流有一系列格式化控制函数,类似:左对齐、右对齐、宽度、填充、小数点位数。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream fsi("test.txt",ios::in);
//fs.open("test.txt",ios::in);
if(!fsi.good())
{
cout <<"打开失败"<<endl;
}
else
{
cout <<"打开成功"<<endl;
}
string str,s1,s2,s3;
int num = 0;
/* fsi >> str; //读到空格或换行就停止
fsi >> num >> s1 >> s2 >> s3;
cout<<str<<"-"<<num<<"-"<<s1<<"-"<<s2<<"-"<<s3<<endl;
*/
string arr[10];
int i = 0;
while(1)
{
fsi >> arr[i];
if(arr[i].size() == 0)
{
break;
}
i++;
}
for(int j=0; j<i; j++)
{
cout << arr[j] <<"-";
}
fstream fso("test.txt",ios::out);
fso << "hehe" << " " << 100 <<" " <<"adsadsad"<<endl;
}
二进制读写:read/write
read (char_type *__s,streamsize __n)
write (char_type *__s,streamsize __n)
gcount成员函数可以获取上次流的二进制读写操作的字节数。
随机读写:
seekp (off_type,ios_base::seekdir)
功能:设置文件的位置指针。
off_type:偏移值
正值向右,负值向左
seekdir:基础位置
ios::beg 文件开头
ios::cur 当前位置
ios::end 文件末尾
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream fs("test.txt",ios::in);
if(!fs.good())
{
cout << "文件打开失败" << endl;
return -1;
}
// 调整文件的位置指针到末尾
fs.seekp(0,ios::end);
cout << "文件的字节数:" << fs.tellp() << endl;
fs.close();
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!