简单文件的输入输出

简单文件的输入输出

  • 包含头文件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)
    {
      //...
    }

猜你喜欢

转载自www.cnblogs.com/yangzixiong/p/11973894.html