一个账号 发表于 2020-3-1 13:47:24

C++中的文件读写操作

本帖最后由 一个账号 于 2020-3-1 13:49 编辑

本文转载于 简书

#include "iostream"
#include "fstream"
#include "vector"
#include "string"

using namespace std;

/*
ofstream文件写操作,内存写入存储设备
ifstream文件读操作,存储设备读取到内存中
fstream   读写操作,对打开的文件可进行读写操作

文件打开模式:
    ios::in   只读
    ios::out只写
    ios::app从文件末尾开始写,防止丢失文本中原有的内容,追加模式
    ios::binary 二进制模式
    ios::nocreate 打开一个文件时,如果文件不存在,不创建
    ios::noreplace 打开一个文件时,如果文件不存在,创建该文件
    ios::trunc   打开一个文件时,然后清空内容
    ios::ate   打开一个文件时,将位置移动到文件末尾
文件指针位置的C++中的用法:
    ios::beg   文件开头
    ios::end   文件末尾
    ios::cur   文件当前位置
    举个例子:
      file.seekg(0, ios::beg)让文件指针定位到文件开头
      file.seekg(0, ios::end)让文件指针定位到文件末尾
      file.seekg(10, ios::cur) 让文件指针从当前位置向文件末尾方向移动10个字节
      file.seekg(-10, ios::cur) 让文件指针从当前位置向文件开始方向移动10个字节
      file.seekg(10,ios::beg)   让文件指针定位到离文件开头10个字节的位置
常用的错误判断方法:
    good()   如果文件打开成功
    bad()    打开文件时发生错误
    eof()    到达文件尾
*/

// 读取hello.txt文件中的字符串,写入out.txt中
int main(){
    ifstream infile("E:\\C++\\cpp_Code\\hello.txt");// 读操作
    ofstream outfile("E:\\C++\\cpp_Code\\out.txt");   // 写操作
    string temp;
    if(! infile.is_open()){
      cout << "打开文件失败" << endl;
    }
    while(getline(infile, temp)){
      outfile << temp;
      outfile << endl;
    }
    infile.close();
    outfile.close();
    return 0;
}
/*
getline()函数的作用:从输入字节流中读入字符,存到string变量中
直到遇到下面的情况停止:
    读入了文件结束标志
    读到一个新行
    达到字符串的最大穿长度
    如果getline没有读入字符,将返回false,用于判断文件是否结束
*/


页: [1]
查看完整版本: C++中的文件读写操作