标准I/O库定位流理论加代码
时间: 2024-09-24 14:25:30 浏览: 23
标准输入输出库(Standard Input Output Library),通常称为C++标准库中的iostream,在编程中扮演着重要角色,它提供了一种统一的方式来处理数据的输入和输出。C++ I/O流模型基于流的概念,将文件、控制台等视为数据流,分为两类:输入流(如cin)和输出流(如cout)。它们都继承自基本的流类(如ifstream, ofstream)。
1. 定位流(Positioning Streams):
- seekg()函数用于设置读取指针的位置,可以指定当前位置,偏移量,或者从开始、当前或结束位置开始计算。
- seekp()函数用于设置写入指针的位置,同样有类似的功能。
2. 示例代码:
```cpp
#include <fstream>
#include <iostream>
int main() {
std::ofstream file("example.txt"); // 创建一个输出流到文件
if (file) {
// 设置写入指针到文件开头
file.seekp(0); // seekp(0)表示从头开始
file << "Hello, World!\n"; // 写入文本
// 检查并设置读取指针到文件末尾
file.flush(); // 确保所有内容已写入
file.seekg(0, std::ios::end); // seekg(0, ios::end)表示从文件结束处开始
int size = file.tellg(); // 获取当前位置作为文件大小
std::cout << "File size: " << size << " bytes\n";
} else {
std::cerr << "Failed to open the file.\n";
}
return 0;
}
```
在这个例子中,我们首先打开一个文件,然后移动写入指针到文件开始,写入一些文本,最后移动到文件末尾获取其大小。