对于C++的文件操作,刚刚学习可以不求甚解,先大体了解,理解后再回头看。
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ifstream in;//用ifstream这个类定义了一个对象为in
in.open("test.txt");
if(!in)
{
cout<<"打开文件失败"<<endl;
return 0;
}
char x;
while(in>>x)
{
cout<<x;
}
cout << endl;
in.close();
return 0;
}
上述代码用到了文件读取类ifstream。
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ofstream out;
out.open("test.txt")
if(!out)
{
cerr<<"打开文件失败!"<<endl;
return 0;
}
for(i=0;i<10;i++)
{
out<<i;
}
out<<endl;
out.close();
return 0;
}
上述代码用到了文件写入类ofstream
可以把ifstream in; 和ofstream out;
in.open("test.txt"); out.open("test.txt"); 替换成 ifstream in("test.txt")和ofstream out("test.txt");
以上的替换后的代码在创建一个ifstream类(文件读取类)和outstream类(文件写入类)的对象时,将文件的名字传递给它们的构造函数。(暂时可以将构造函数理解成这个对象默认使用的函数或方法)
ifstream in(char *filename,intopen_mode),filename是文件名字,open_mode是文件打开模式,其值用来定义以怎样
的方式打开文件。
如果需要多种方式并存的打开一个文件,则只需要在打开文件方式中加一个OR操作符‘|’,即std::in|sdt::out
e.g.
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream fp("test.txt",ios::in|ios::out);
if(!fp)
{
cerr << "打开文件失败。\n"<<endl;//cerr是输出到标准错误的ostream对象,常用于程序错误信息
return 0;
}
fp<<"Iloveyou";
static char str[20];
fp.seekg(ios::beg);//使得文件指针指向文件开头
fp>>str;
cout<<str<<endl;
fp.close();
return 0;
}