一、讀寫數值數據文件
#include<iostream>
using namespace std;
#include<fstream>
void main()
{
fstream fin;
fin.open("studentgrade.txt",ios::in);
if(!fin)
{
cout<<"Open file filed"<<endl;
return;
}
int a;
int sum[3]={0};
int i = 0;
fin>>a;
while(!fin.eof())//讀到文本文件的結束符時結束
{
sum[i % 3] += a;
i++;
fin>>a; //fin>>a放到循環前面,則sum[i % 3] += a多執行一次
}
fin.close();
fstream fout("studentgrade.txt",ios::app);
fout<<"total:\n";
fout<<sum[0]<<" "<<sum[1]<<" "<<sum[2]<<endl;
fout<<"Average:\n";
fout<<float(sum[0])/(i/3)<<" "<<float(sum[1])/(i/3)<<" "<<float(sum[2])/(i/3)<<endl;
fout.close();
}
二、字符數據文本讀寫
#include<iostream>
using namespace std;
#include<string>
#include<fstream>
void main()
{
string filename;
cin>>filename;
ifstream fin(filename,ios::_Nocreate);
string s_max;
string s_min;
int max = 0;
int min = 100000;
int max_linenum = 0;
int min_linenum = 0;
string s;
int i = 1;
while(!fin.eof())
{
getline(fin,s);
if(s.size() < min)
{
s_min = s;
min = s.size();
min_linenum = i;
}
if(s.size() > max)
{
s_max = s;
max = s.size();
max_linenum = i;
}
cout<<i++<<": ";
cout<<s<<endl;
}
fin.close();
cout<<"\nTotalLine is "<<i-1<<endl;
cout<<"MaxLine is "<<max_linenum<<":"<<s_max<<"\n"<<s_max.size()<<" characters;\n";
cout<<"MinLine is "<<min_linenum<<":"<<s_min<<"\n"<<s_min.size()<<" characters;\n";
}