宝安网站优化/廊坊网站排名优化公司哪家好
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件)。程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符。
对ASCII文件的读写操作可以用以下两种方法:
例.11 有一个整型数组,含个元素,从键盘输入个整数给数组,将此数组送到磁盘文件中存放。
#include <fstream>
using namespace std;
int main( )
{
int a[10];
ofstream outfile("f1.dat",ios::out);//定义文件流对象,打开磁盘文件"f1.dat"
if(!outfile) //如果打开失败,outfile返回值
{
cerr<<"open error!"<<endl;
exit(1);
}
cout<<"enter 10 integer numbers:"<<endl;
for(int i=0;i<10;i++)
{
cin>>a[i];
outfile<<a[i]<<" ";
} //向磁盘文件"f1.dat"输出数据
outfile.close(); //关闭磁盘文件"f1.dat"
return 0;
}
运行情况如下:
enter 10 integer numbers:
1 3 5 2 4 6 10 8 7 9 ↙
请注意: 在向磁盘文件输出一个数据后,要输出一个(或几个)空格或换行符,以作为数据间的分隔,否则以后从磁盘文件读数据时,10个整数的数字连成一片无法区分。
例.12 从例.11建立的数据文件f1.dat中读入个整数放在数组中,找出并输出个数中的最大者和它在数组中的序号。
#include <fstream>
int main( )
{
int a[10],max,i,order;
ifstream infile("f1.dat",ios::in|ios::nocreate);
//定义输入文件流对象,以输入方式打开磁盘文件f1.dat
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<10;i++)
{
infile>>a[i];//从磁盘文件读入个整数,顺序存放在a数组中
cout<<a[i]<<" ";
} //在显示器上顺序显示个数
cout<<endl;
max=a[0];
order=0;
for(i=1;i<10;i++)
if(a[i]>max)
{
max=a[i]; //将当前最大值放在max中
order=i; //将当前最大值的元素序号放在order中
}
cout<<"max="<<max<<endl<<"order="<<order<<endl;
infile.close();
return 0;
}
运行情况如下:
1 3 5 2 4 6 10 8 7 9(在磁盘文件中存放的个数)
max=10 (最大值为)
order=6 (最大值是数组中序号为的元素)
对ASCII文件的读写操作可以用以下两种方法:
- 用流插入运算符“<<”和流提取运算符“>>”输入输出标准类型的数据。
- 用文件流的put,get,geiline等成员函数进行字符的输入输出。
例.11 有一个整型数组,含个元素,从键盘输入个整数给数组,将此数组送到磁盘文件中存放。
#include <fstream>
using namespace std;
int main( )
{
int a[10];
ofstream outfile("f1.dat",ios::out);//定义文件流对象,打开磁盘文件"f1.dat"
if(!outfile) //如果打开失败,outfile返回值
{
cerr<<"open error!"<<endl;
exit(1);
}
cout<<"enter 10 integer numbers:"<<endl;
for(int i=0;i<10;i++)
{
cin>>a[i];
outfile<<a[i]<<" ";
} //向磁盘文件"f1.dat"输出数据
outfile.close(); //关闭磁盘文件"f1.dat"
return 0;
}
运行情况如下:
enter 10 integer numbers:
1 3 5 2 4 6 10 8 7 9 ↙
请注意: 在向磁盘文件输出一个数据后,要输出一个(或几个)空格或换行符,以作为数据间的分隔,否则以后从磁盘文件读数据时,10个整数的数字连成一片无法区分。
例.12 从例.11建立的数据文件f1.dat中读入个整数放在数组中,找出并输出个数中的最大者和它在数组中的序号。
#include <fstream>
int main( )
{
int a[10],max,i,order;
ifstream infile("f1.dat",ios::in|ios::nocreate);
//定义输入文件流对象,以输入方式打开磁盘文件f1.dat
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<10;i++)
{
infile>>a[i];//从磁盘文件读入个整数,顺序存放在a数组中
cout<<a[i]<<" ";
} //在显示器上顺序显示个数
cout<<endl;
max=a[0];
order=0;
for(i=1;i<10;i++)
if(a[i]>max)
{
max=a[i]; //将当前最大值放在max中
order=i; //将当前最大值的元素序号放在order中
}
cout<<"max="<<max<<endl<<"order="<<order<<endl;
infile.close();
return 0;
}
运行情况如下:
1 3 5 2 4 6 10 8 7 9(在磁盘文件中存放的个数)
max=10 (最大值为)
order=6 (最大值是数组中序号为的元素)