商城网站设计一站式服务,产品网站开发服务,企业网站做百度排名要怎么做,扁平化设计网站建设前言 大家好吖#xff0c;欢迎来到 YY 滴 系列 #xff0c;热烈欢迎#xff01; 本章主要内容面向接触过C的老铁 主要内容含#xff1a; 欢迎订阅 YY滴C专栏#xff01;更多干货持续更新#xff01;以下是传送门#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》… 前言 大家好吖欢迎来到 YY 滴 系列 热烈欢迎 本章主要内容面向接触过C的老铁 主要内容含 欢迎订阅 YY滴C专栏更多干货持续更新以下是传送门 YY的《C》专栏YY的《C11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》专栏YY的《小小知识点》专栏YY的《单片机期末速过》专栏YY的《C期末速过》专栏 目录 一.C文件IO流基本知识1采用文件流对象操作文件的一般步骤2定义一个文件流对象3文件内容的数据格式分类4从“输入输出”角度理解——文件IO和基础IO记忆coutcin 二.C文件IO流操作完整演示代码 一.C文件IO流基本知识
1采用文件流对象操作文件的一般步骤 定义一个文件流对象使用文件流对象的成员函数打开一个磁盘文件使得文件流对象和磁盘文件之间建立联系使用提取和插入运算符对文件进行读写操作或使用成员函数进行读写关闭文件 2定义一个文件流对象 C中定义一个文件流对象有三种 ifstream ifile(只输入用)ofstream ofile(只输出用)fstream iofile(既输入又输出用) 3文件内容的数据格式分类 C根据文件内容的数据格式分为 二进制文件 和 文本文件 4从“输入输出”角度理解——文件IO和基础IO记忆coutcin 在基础IO中——cout是读操作cin是写操作而在文件IO中——cout是写操作cin是读操作我们可以这么理解 基础IO中我们操作的对象是键盘输入对象是显示器cout把程序的内容输出给显示器读cin把键盘的内容输出给显示器写 在文件IO中我们操作的对象是文件cout把程序的内容输出给文件写cin把文件输出给显示器读; 二.C文件IO流操作完整演示代码
struct ServerInfo
{char _address[32];// 二进制读写不能用string vector这样的对象存数据// 否则写出去就是一个指针进程结束就是野指针另一个进程再读进来进坑了//string _address;int _port;Date _date;
};struct ConfigManager
{
public:ConfigManager(const char* filename file.txt):_filename(filename){}// 二进制读写 -- 简单高效缺点写到文件中的内容看不懂void WriteBin(const ServerInfo info){ofstream ofs(_filename, ios_base::out | ios_base::binary);//定义一个文件流对象ofs.write((const char*)info, sizeof(info));}void ReadBin(ServerInfo info){ifstream ifs(_filename, ios_base::in | ios_base::binary);//定义一个文件流对象ifs.read((char*)info, sizeof(info));}//文本读写void WriteText(const ServerInfo info){ofstream ofs(_filename);//定义一个文件流对象ofs info._address info._port info._date;}void ReadText(ServerInfo info){ifstream ifs(_filename);//定义一个文件流对象ifs info._address info._port info._date;}
private:string _filename; // 配置文件
};int main()
{ServerInfo winfo { 192.0.0.1111111111111111111, 80, { 2022, 4, 10 } };ConfigManager cm(test.bin);cm.WriteBin(winfo);return 0;
}int main()
{ConfigManager cf_bin(test.bin);ServerInfo rbinfo;cf_bin.ReadBin(rbinfo);cout rbinfo._address rbinfo._port rbinfo._date endl;return 0;
}int main()
{ServerInfo winfo { 192.0.0.1111111111111111111, 80, { 2022, 4, 10 } };ConfigManager cm(test.txt);cm.WriteText(winfo);return 0;
}int main()
{ConfigManager cf_bin(test.txt);ServerInfo rbinfo;cf_bin.ReadText(rbinfo);cout rbinfo._address rbinfo._port rbinfo._date endl;return 0;
}int main()
{ifstream ifs(Test.cpp);char ch;while (ifs.get(ch)){cout ch;//全读}return 0;
}