C++文件操作----写入文件

76 阅读2分钟

1.文件操作

在C++中,文件操作属于技术的应用,不是基本语法。

程序停止运行的时候,数据持久化的两种方式:文件和数据库。

程序在运行过程中,数据是存储在内存中的。

实际开发中,文件操作无处不在

image.png

2.创建和写入文本文件

文件文本一般以行的形式组织数据

写文件包含头文件: //#include

写文件源代码,程序在那个目录运行,创建的文件就在哪个目录。

#include<iostream>
#include<fstream>   //ofstream类包含的头文件
using namespace std;

int main()
{
	ofstream fout; //创建文件输出流对象
        //open函数支持C风格的字符串和string
        //第一种方式:文件保存在程序运行的目录
        //string filename="test.txt";
        //char filename[]="test.txt";
    
        //第二种方式:文件保存在指定的目录
        //string filename="D:\\data\\txt\\test.txt";
        //char fileneme[]="D:\\data\\txt\\test.txt";
        //文件名一般用全路径,书写的方法如下:
        //1.R"(D:\data\txt\test.txt)"
        //2.D:\\data\\txt\\test.txt
        //3. D:/data/txt/test.txt
        //4."/data/txt/test.txt"  //Linux系统采用的方法
    
        //open函数可以在创建文件输出流对象时,传入路径参数,这样就可以省略open函数。
        //ofstream fout(filename)
        //打开文件,如果文件不存在,就创建它;如果文件存在,就截断其内容。
        //打开模式,ios::out 截断文件内容
        //ios::trunc 截断文件内容
        //ios::app    不截断文件内容,只是在文件末尾追加文件
	//fout.open(filename); 
        //ofstream fout(filename);   //截断文件内容,覆盖原有内容
        //ofstream fout(filename,ios::out) //截断文件内容,覆盖原有内容
        //ofstream fout(filename,ios::trunc) //截断文件内容,覆盖原有内容
        //ofstream fout(filename,ios::app)  //追加文件内容
       
    
	//向文件中写入内容,不合适的方式。需要判断打开文件是否成功
    //失败的原因有:目录不存在;磁盘空间满;没有权限,Linux平台下很常见。
    if(fout.is_open()==false)
    {
        cout<<"打开文件失败"<<filename<<"失败。\n";
    //打开文件失败,直接终止程序执行,程序退出。
        return 0;   
    }
	fout << "西施|19|极为漂亮\n";
	fout << "冰冰|22|漂亮\n";
	fout << "幂幂|25|一般\n";
	fout.close(); //关闭文件,fout对象失效前会自动调用close()
	cout << "操作文件完成。\n";
	return 0;
}