c++读取文件
时间: 2025-05-31 20:55:28 浏览: 11
### C++ 读取文件示例
以下是使用标准库 `std::ifstream` 类来读取文件的一个完整示例。此方法适用于大多数常见的文件读取需求。
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
string line;
ifstream inFile("example.txt"); // 打开名为 example.txt 的文件
if (!inFile.is_open()) { // 检查文件是否成功打开
cerr << "无法打开文件!" << endl;
return 1; // 返回错误码
}
while (getline(inFile, line)) { // 使用 getline 函数逐行读取文件内容
cout << line << endl; // 输出每一行的内容到控制台
}
inFile.close(); // 关闭文件流
return 0;
}
```
在此代码中,程序尝试打开一个名为 `example.txt` 的文件并逐行读取其内容[^3]。如果文件未能成功打开,则会输出一条错误消息,并终止程序运行。每次循环迭代都会调用 `getline()` 方法从输入流中提取一行数据,并将其存储在字符串变量 `line` 中以便进一步处理或显示。
除了按行读取外,还可以采用其他方式读取文件内容:
#### 按字符读取
下面展示了一种基于单个字符逐一读取的方式:
```cpp
char ch;
while (inFile.get(ch)) { // get 单独获取每一个字符直到 EOF
cout << ch;
}
```
这种方法适合于需要逐字分析的情况,但效率可能低于整行读取的方法[^2]。
#### 缓冲区批量读取
当面对大容量的数据传输或者性能敏感的应用场合时,可以考虑利用缓冲技术提高速度:
```cpp
const int BUF_SIZE = 256;
char buffer[BUF_SIZE];
while (inFile.read(buffer, BUF_SIZE)) { // read 将固定大小的块复制到数组里
size_t count = inFile.gcount();
fwrite(buffer, sizeof(char), count, stdout);
}
if (inFile.eof()) { // 处理最后不足一整个缓冲的部分
size_t count = inFile.gcount();
fwrite(buffer, sizeof(char), count, stdout);
}
```
这里定义了一个长度为 256 字节的临时存储空间用来装载来自磁盘上的信息片段[^1]。
阅读全文
相关推荐












