#include <fstream>
打开文件:open(“D:\\test.txt”,mode);
mode
ios::in,读文件
ios::out,写文件,重写,没有,就新建
ios::app,写文件,添加到后面
关闭文件:close();
例如:
fstream fin,fout;
fin.open("D:\\test.txt",ios::in); //读
fout.open("D:\\test.txt",ios::out); //写
fin.close();
fout.close();
判断是否打开成功:is_open();
fin.is_open() fout.is_open();
判断是否是文件结尾: eof(); //结尾返回true,否则返回false
fin.eof()
注意:c++中读完文件之后,无论是否成功都会在读取最后一个数据,其实最后一个数据是读取失败的,所有需要判断一下读取是否成功,失败则退出,如果不加这个判断,就会多读出一个数据
if(!fin){ //按字符读取的时候
break;
}
读取文件的方式:
1,按行读取
getline(fin,str);
2,按单词读取
fin>>str;
3,按字符读取
fin.get(ch);
写文件的方式:
fout<<"adf";
例子:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
char ch;
string s2;
string s1("This is a line");
fstream fout; //写入文件
fout.open("D:\\test1.txt",ios::out);
if(fout.is_open()){
fout<<s1<<'\n';
fout<<"This is another line";
}
fout.close();
fstream fin; //读取文件
fin.open("D:\\test1.txt",ios::in);
if(fin.is_open()){ //判断是否打开成功
while(!fin.eof()){ //判断是否读到文件结尾
//按行读取
//getline(fin,s2);
//按单词读取
//fin>>s2;
//cout<<s2<<endl;
//按字符读取
fin.get(ch);
if(!fin){
break;
}
cout<<ch;
}
}
return 0;
}