简单文件的输入输出
简单文件的输入输出#
- 包含头文件fstream
- 定义了一个用于处理输出的ofstream类
- 需要声明一个或多个ofstream变量,并将ofstream对象与文件关联起来。
- 其中一种关联方法使用open()方法, 使用完文件后使用close()方法关闭。
- 可以使用ofstream对象和<<运算符来输出各种类型的数据。
- 注意,ofstream必须自己声明。
ofstream outFile;
outFile.open("fish.txt");
outFile << "hhhh"<<endl; //向文件中输入一行文本
-
ofstream对象可以使用cout的任何方法。
-
open()函数
- 如果运行前文件不存在,将创建文件。如果存在则将其长度变为0(清空)。
- open()可能会打开失败。
-
文件读取包含fstream头文件
-
定义了一个用于处理输入的ifstream类
-
需要声明ifstream对象。
-
需要将ifstream对象与文件进行关联,使用open()方法。
-
使用close()方法关闭。
-
使用ifstream>>来读取各种类型的数据。
-
ifstream对象的get()方法读取一个字符。使用getline()读取一行字符。
-
可以结合使用ifstream和eof(),fail()等方法判断是否输入成功。
-
ifstream对象本身作为测试条件时,如果最后一个读取操作成功,将被转换为bool类型
ifstream inFile;
inFile.open("bowling.txt");
double wt;
inFile >> wt;
char line[81];
inFile.getline(line, 81);
- 使用is_open()判断文件是否被打开。exit()函数在cstdlib头文件中定义。如果编译器不支持is_open(),可以使用较老的good()来代替。
inFile.open("bowling.txt");
if (!inFile.is_open())
{
exit(EXIT_FAILURE);
}
- 读取过程中出错
- 如果遇到EOF,eof()函数将返回true
- 遇到类型不匹配或EOF,fail()返回true
- 如果磁盘受损或文件损坏,bad()返回true
- 如果想简单的判断读取是否成功,使用good()。成功返回true
inFile >> value;
while(inFile.good())
{
//...
inFile >> value;
}
//另一种简洁写法
while(inFile >> value)
{
//...
}