1.文件操作
在C++中,文件操作属于技术的应用,不是基本语法。
程序停止运行的时候,数据持久化的两种方式:文件和数据库。
程序在运行过程中,数据是存储在内存中的。
实际开发中,文件操作无处不在
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;
}