做网站所需要的代码6,甲级设计院加盟分公司,网上注册公司经营范围填不了,魏县住房和城乡建设局网站基本概念
文本文件和二进制文件是计算机中存储数据的两种基本方式#xff1a; 文本文件#xff1a;以 ASCII 或 Unicode 等字符编码方式存储#xff0c;内容可以直接被人类读取。二进制文件#xff1a;以原始二进制格式存储数据#xff0c;通常需要特定程序才能解析。
主…基本概念
文本文件和二进制文件是计算机中存储数据的两种基本方式 文本文件以 ASCII 或 Unicode 等字符编码方式存储内容可以直接被人类读取。二进制文件以原始二进制格式存储数据通常需要特定程序才能解析。
主要区别
特性文本文件二进制文件存储格式字符编码ASCII/Unicode原始二进制数据可读性人类可读人类不可读乱码数据处理逐行 / 逐字符处理按固定大小的数据块处理存储效率较低需编码转换较高直接存储原始数据跨平台兼容性可能存在换行符差异\r\n/\n二进制格式需一致才能跨平台典型应用配置文件、日志、源代码图像、音频、数据库文件
C 代码示例
下面的 C 代码演示了如何使用文本模式和二进制模式读写文件 file_io_example.cpp
// 文件读写示例文本模式与二进制模式对比
#include iostream
#include fstream
#include string
#include vector// 文本模式读写示例
void textFileExample() {// 写入文本文件std::ofstream textOut(text_file.txt);if (textOut.is_open()) {textOut Hello, World!\n;textOut 123\n;textOut 3.14\n;textOut.close();std::cout 文本文件写入成功\n;}// 读取文本文件std::ifstream textIn(text_file.txt);if (textIn.is_open()) {std::string line;while (std::getline(textIn, line)) {std::cout 读取文本行: line std::endl;}textIn.close();}
}// 二进制模式读写示例
void binaryFileExample() {// 写入二进制文件std::ofstream binaryOut(binary_file.bin, std::ios::binary);if (binaryOut.is_open()) {// 写入字符串std::string str Hello, World!;size_t strLen str.length();binaryOut.write(reinterpret_castconst char*(strLen), sizeof(strLen));binaryOut.write(str.c_str(), strLen);// 写入整数int num 123;binaryOut.write(reinterpret_castconst char*(num), sizeof(num));// 写入浮点数double dbl 3.14;binaryOut.write(reinterpret_castconst char*(dbl), sizeof(dbl));binaryOut.close();std::cout 二进制文件写入成功\n;}// 读取二进制文件std::ifstream binaryIn(binary_file.bin, std::ios::binary);if (binaryIn.is_open()) {// 读取字符串size_t readStrLen;binaryIn.read(reinterpret_castchar*(readStrLen), sizeof(readStrLen));std::vectorchar buffer(readStrLen);binaryIn.read(buffer.data(), readStrLen);std::string readStr(buffer.begin(), buffer.end());// 读取整数int readNum;binaryIn.read(reinterpret_castchar*(readNum), sizeof(readNum));// 读取浮点数double readDbl;binaryIn.read(reinterpret_castchar*(readDbl), sizeof(readDbl));std::cout 读取二进制数据:\n;std::cout 字符串: readStr std::endl;std::cout 整数: readNum std::endl;std::cout 浮点数: readDbl std::endl;binaryIn.close();}
}int main() {std::cout 文本文件示例 \n;textFileExample();std::cout \n 二进制文件示例 \n;binaryFileExample();return 0;
}代码说明
上面的代码展示了 文本文件操作 使用std::ofstream和std::ifstream的默认模式文本模式使用和操作符或getline()进行读写数据会自动进行字符编码转换 二进制文件操作 通过std::ios::binary标志指定二进制模式使用write()和read()方法直接读写内存中的数据需要手动管理数据的大小和格式
注意事项 二进制文件的可移植性 不同平台的字节序大端 / 小端可能不同浮点数表示方式可能有差异结构体对齐方式可能不同 文本文件的平台差异 Windows 使用\r\n作为换行符Unix/Linux 使用\n在 Windows 上文本模式写入时会自动将\n转换为\r\n 选择原则 需要人类可读或跨平台兼容性时使用文本文件需要高效存储或直接访问内存数据时使用二进制文件 根据具体应用场景选择合适的文件类型能显著提升程序的性能和可维护性。