1、 磁盤文件的打開和關(guān)閉操作:
磁盤文件的打開和關(guān)閉操作一般使用 fstream 類中所定義的成員函數(shù) open() 和 close() 。
⒈打開文件:
步驟:①先說明一個 fstream 類的對象。
• 用成員函數(shù) open() 打開指定的文件。
打開指定文件的方式(即文件訪問方式)
in: 以輸入(讀)方式打開文件。
Out: 以輸出(寫)方式打開文件。
App: 以輸出追加方式打開文件。
Ate: 文件打開時,文件指針位于文件尾。
Trunc: 如果文件存在,將其長度截斷為 0 ,并清除原有內(nèi)容;如果文件不存在,則創(chuàng)建新文件。
Binary: 以二進(jìn)制方式打開文件,缺省時為文本文件。
Nocreate: 打開一個已有文件,如該文件不存在,則打開失敗。
Noreplace : 如果文件存在,除非設(shè)置 ios::ate 或 ios::app, 否則打開操作失敗。
Ios::out|ios::binary: 以二進(jìn)制寫方式打開文件。
Ios::in|ios::binary: 以二進(jìn)制讀方式打開文件。
例如: fstream outfile;
outfile.open(“f1.txt”,ios::out);
或也可以這樣打開: fstream outfile(“f1.txt”,ios::out);
還可以用下述方法 表示打開某個寫文件:
ofstream ostream(“f1.txt”);
或 ofstream ostrm;
ostrm.open(“f1.txt”);
可以用下述方法表示打開某個讀文件:
ifstream istrm(“f2.txt”);
或: ifstream istrm;
istrm.open(“f2.txt”);
⒉關(guān)閉文件: outfile.close(); 文件流 outfile 被關(guān)閉,由它所標(biāo)識的文件送入磁盤中。
例7:分析下列程序的輸出結(jié)果:
void main()
{
ostream ostrm;
ostrm.open(“f1.txt”);
ostrm<<120< ostrm<<310.85< ostrm.close();
ifstream istrm(“f1.txt”);
int n;
double d;
istrm>>n>>d;
cout< istrm.close();
}
2、 文本文件的讀寫操作:
例8:把文本寫入指定的文件中去。
#include
#include
#include
void main()
{
fstream outfile;
ourfile.open(“f2.txt”,ios::out);
if(!outfile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
outfile<<”this is a program.\n”;
outfile<<”this is a program.\n”;
outfile.close();
}
例9:從文本文件中讀取文件信息:
#include
#include
#include
void main()
{
fstream infile;
infile.open(“f2.dat”,ios::in);
if(!infile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
char s[80];
while (!infile.eof())
{
infile.getline(s,sizeof(s));
cout< }
inflie.close();
}
例 10 :使用 get() 和 put() 函數(shù)讀寫文本文件。
#include
#include
#include
#include
void main()
{
fstream outfile,infile;
outfile.open(“f3.dat”,ios::out);
if(!outfile)
{
cout<<”f3.dat cannt open.\n”;
abort();
}
char str[]=”this is a C++ program.”;
for(int I=0;I<=strlen(str);I++)
outfile.put(str[I]);
outfile.close();
inflie.open(“f3.dat”,ios::in);
if(!infile)
{
cout<<”f3.dat”,ios::in);
abort();
}
char ch;
while(infile.get(ch))
cout< cout< inflie.close();
}
例 11 : #include
#include
#include
void main()
{
fstream infile,outfile;
inflie.open(f2.dat”,ios::in);
if(!infile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
outfile.open(“f4.dat”,ios::out);
if(!outfile)
{
cout<<”f4.dat cannt open.\n”;
abort();
}
char ch;
while(infile.get(ch))
outfile.put();
infile.close();
outfile.close();
}
例 12 :二進(jìn)制文件的讀寫操作:
#include
#include
#include
struct person
{
char name[20];
double height;
unsigned short age;
}
struct person people[40]={
“Wang”,1.65,25,
“Zhang”,1.74,24,
“Li”,1.89,21,
“Hang”,1.70,22};
void main()
{
fstream infile,outfile;
outfile.open(“f5.dat”,ios::out|ios::binary);
if(!outfile)
{
cout<<”f5.dat cannt open.\n”;
abort();
}
for(int I=0;I<4;I++)
outfile.write((char *)&people[I],sizeof(people[I]));
outfile.close();
磁盤文件的打開和關(guān)閉操作一般使用 fstream 類中所定義的成員函數(shù) open() 和 close() 。
⒈打開文件:
步驟:①先說明一個 fstream 類的對象。
• 用成員函數(shù) open() 打開指定的文件。
打開指定文件的方式(即文件訪問方式)
in: 以輸入(讀)方式打開文件。
Out: 以輸出(寫)方式打開文件。
App: 以輸出追加方式打開文件。
Ate: 文件打開時,文件指針位于文件尾。
Trunc: 如果文件存在,將其長度截斷為 0 ,并清除原有內(nèi)容;如果文件不存在,則創(chuàng)建新文件。
Binary: 以二進(jìn)制方式打開文件,缺省時為文本文件。
Nocreate: 打開一個已有文件,如該文件不存在,則打開失敗。
Noreplace : 如果文件存在,除非設(shè)置 ios::ate 或 ios::app, 否則打開操作失敗。
Ios::out|ios::binary: 以二進(jìn)制寫方式打開文件。
Ios::in|ios::binary: 以二進(jìn)制讀方式打開文件。
例如: fstream outfile;
outfile.open(“f1.txt”,ios::out);
或也可以這樣打開: fstream outfile(“f1.txt”,ios::out);
還可以用下述方法 表示打開某個寫文件:
ofstream ostream(“f1.txt”);
或 ofstream ostrm;
ostrm.open(“f1.txt”);
可以用下述方法表示打開某個讀文件:
ifstream istrm(“f2.txt”);
或: ifstream istrm;
istrm.open(“f2.txt”);
⒉關(guān)閉文件: outfile.close(); 文件流 outfile 被關(guān)閉,由它所標(biāo)識的文件送入磁盤中。
例7:分析下列程序的輸出結(jié)果:
void main()
{
ostream ostrm;
ostrm.open(“f1.txt”);
ostrm<<120<
ifstream istrm(“f1.txt”);
int n;
double d;
istrm>>n>>d;
cout<
}
2、 文本文件的讀寫操作:
例8:把文本寫入指定的文件中去。
#include
#include
#include
void main()
{
fstream outfile;
ourfile.open(“f2.txt”,ios::out);
if(!outfile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
outfile<<”this is a program.\n”;
outfile<<”this is a program.\n”;
outfile.close();
}
例9:從文本文件中讀取文件信息:
#include
#include
#include
void main()
{
fstream infile;
infile.open(“f2.dat”,ios::in);
if(!infile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
char s[80];
while (!infile.eof())
{
infile.getline(s,sizeof(s));
cout<
inflie.close();
}
例 10 :使用 get() 和 put() 函數(shù)讀寫文本文件。
#include
#include
#include
#include
void main()
{
fstream outfile,infile;
outfile.open(“f3.dat”,ios::out);
if(!outfile)
{
cout<<”f3.dat cannt open.\n”;
abort();
}
char str[]=”this is a C++ program.”;
for(int I=0;I<=strlen(str);I++)
outfile.put(str[I]);
outfile.close();
inflie.open(“f3.dat”,ios::in);
if(!infile)
{
cout<<”f3.dat”,ios::in);
abort();
}
char ch;
while(infile.get(ch))
cout<
}
例 11 : #include
#include
#include
void main()
{
fstream infile,outfile;
inflie.open(f2.dat”,ios::in);
if(!infile)
{
cout<<”f2.dat cannt open.\n”;
abort();
}
outfile.open(“f4.dat”,ios::out);
if(!outfile)
{
cout<<”f4.dat cannt open.\n”;
abort();
}
char ch;
while(infile.get(ch))
outfile.put();
infile.close();
outfile.close();
}
例 12 :二進(jìn)制文件的讀寫操作:
#include
#include
#include
struct person
{
char name[20];
double height;
unsigned short age;
}
struct person people[40]={
“Wang”,1.65,25,
“Zhang”,1.74,24,
“Li”,1.89,21,
“Hang”,1.70,22};
void main()
{
fstream infile,outfile;
outfile.open(“f5.dat”,ios::out|ios::binary);
if(!outfile)
{
cout<<”f5.dat cannt open.\n”;
abort();
}
for(int I=0;I<4;I++)
outfile.write((char *)&people[I],sizeof(people[I]));
outfile.close();

