C++getline从一个txt文件中读取数据,遇到空行停止读取,遇到下一个非空行继续读取
时间: 2023-07-18 15:36:50 浏览: 103
可以使用以下代码实现:
```c++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream file("data.txt"); // 打开文件
vector<uint8_t> data; // 存储数据的向量
string line; // 存储读取的每一行字符串
while (getline(file, line)) { // 逐行读取文件
if (line.empty()) { // 如果遇到空行
continue; // 继续读取下一行
} else { // 如果不是空行
// 将字符串转换为 uint8_t 类型并存储到向量中
data.push_back(static_cast<uint8_t>(stoi(line)));
}
}
// 输出向量中的数据
for (auto d : data) {
cout << static_cast<int>(d) << " ";
}
cout << endl;
return 0;
}
```
其中,`data.txt` 是存储数据的文本文件,`data` 是存储数据的向量,`line` 是存储读取的每一行字符串。使用 `getline` 函数逐行读取文件,如果遇到空行就跳过该行,继续读取下一行,否则将字符串转换为 `uint8_t` 类型并存储到向量中。最后输出向量中的数据。
阅读全文