1>在C语言中,我们都知道怎样直接用txt文件输入以及把输出结果直接输出到文件中。写法很简单:
freopen("Input.txt","r",stdin);
freopen("Output.txt","w",stdout);
是调一个通用的函数 freopen,在头文件<stdio.h>中,这个函数有三个参数,第一个表示读入或者输出文件的文件名,第二个有两个可选参数,“w”表示write,即写入,“r”表示read,标读入,然后最后一个也是固定的用法,stdin表示读入,而stdout标输出,基本用法是固定的,没有什么变化,因此只要记住这个固定结构就可以了。
2>下面我们来看看C++中操作文件,首先我们来看写入文件中。
A)它包含一个类,ofstream,在头文件<fstream>中,cout就是这个类衍生出的一个变量,因此cout的用法都可以用于这个类,只是它是直接用于输出到文件中。
我们来看一个练习:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream outfile,fout;
outfile.open("fish.txt");
char s[50];
cin>>s;
//cout << fixed;
//cout.precision(2);
//cout.setf(ios_base::showpoint);
cout<<"Make and model: "<<s<<endl;
outfile<<"PPS Make and model: "<<s<<endl; //将输出写入到文件中,所有cout的函数都可以用
outfile.close();
return 0;
}
运行完之后可以找一下fish.txt这个文件中,就是outfile这个变量输出的内容。
B)读入文件的话用法也很简单,用类ifstream,同样也在头文件<fstream>中,cin就是其衍生出的一个变量,所以cin的所有用法同样也可以用于这个类。
我们看一个练习:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
ifstream infile;
infile.open("fish.txt");
if(!infile.is_open())
{
cout<<"Could Not Open File!!!";
exit(EXIT_FAILURE);
}
double val,sum = 0.0;
int count = 0;
infile >> val;
while(infile.good())
{
count++;
sum+=val;
infile >> val;
}
if(infile.eof())
cout<<"End Of File!!";
cout<<"Count: "<<count<<endl;
cout<<"Sum: "<<sum<<endl;
infile.close();
return 0;
}
这个程序写的有点繁琐,他检查了文件是否打开成功,以及是否以EOF结尾,但是其中的文件读入还是很简洁的。
首先运行这个程序必须自己建立一个fish.txt文件,其中放入一些浮点数,以空格隔开,就可以运行一下看看结果了。
出入文件类似这样:
18 19 18.5 13.5 14 17.5
16 19.5 20 18 12 18.5
大家可以试试。