C++ 文件输入输出详解:入门与示例

需积分: 10 1 下载量 85 浏览量 更新于2024-07-20 收藏 114KB DOC 举报
“C++ 输入输出精讲” 在C++编程中,文件输入输出是至关重要的技能,它允许程序与外部文件交互,保存数据或读取已有数据。本文将深入探讨C++中的文件I/O操作,以帮助你理解和掌握这一核心概念。 首先,C++提供了`fstream`库来处理文件的读写操作。`#include <fstream>`是必须的,因为它包含了处理文件输入输出所需的类和函数。`iostream.h`通常用于基本的`cin`和`cout`操作,但当包含`fstream.h`时,它会自动引入`iostream.h`,所以不需要额外包含。 在示例程序中,`ofstream SaveFile("cpp-home.txt");`这一行创建了一个`ofstream`对象,名为`SaveFile`,并指定要打开或创建的文件名“cpp-home.txt”。`ofstream`是输出文件流的类,意味着它主要用于写入操作。如果文件已存在,这段代码会覆盖原有内容;如果文件不存在,它会新建一个。 接下来,`SaveFile << "HelloWorld,fromwww.cpp-home.comandLoobian!";`这一行利用`<<`运算符将字符串写入到`SaveFile`所代表的文件中。`<<`运算符在流处理中被称为插入运算符,它将右侧的数据“插入”到左侧的流中。 最后,`SaveFile.close();`用于关闭文件流。关闭文件是良好的编程习惯,可以释放系统资源并确保数据正确写入。 除了基础的写入操作,C++还支持更复杂的文件I/O功能。例如,可以使用`ifstream`类进行文件读取,`fstream`类同时处理读写。还有其他方法如定位文件指针、处理二进制文件、错误检查等。 `ifstream`类的用法与`ofstream`类似,只是用于读取文件。例如: ```cpp ifstream LoadFile("data.txt"); string line; while (getline(LoadFile, line)) { cout << line << endl; } LoadFile.close(); ``` 这段代码会读取名为"data.txt"的文件,逐行打印其内容。 对于二进制文件,你可以使用`ios::binary`标志: ```cpp ofstream SaveBin("binary.bin", ios::binary); SaveBin.write((char*)&variable, sizeof(variable)); SaveBin.close(); ``` 这将按照二进制格式写入变量`variable`到文件中。 此外,`seekg()`和`seekp()`函数用于定位文件读写位置,`tellg()`和`tellp()`则返回当前位置。`eof()`函数检测是否到达文件末尾,`fail()`检查是否发生错误。 C++的文件输入输出提供了强大的功能,涵盖文本和二进制数据的处理。通过熟练掌握这些知识点,你将能够编写出能够持久化数据的高效程序。