用c++写一个读取txt文件第三列的数据并存到返回值vector中,每列之间空格隔开,
时间: 2024-11-24 20:43:23 浏览: 16
在C++中,你可以使用`fstream`库来读取文本文件,并通过`getline`函数按行读取数据。如果你想获取每一行的第三列数据,可以先分隔每行内容,然后再选择第三部分。这里是一个简单的示例:
```cpp
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
std::vector<std::string> readThirdColumn(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
throw std::runtime_error("Failed to open the file.");
}
std::vector<std::string> columnData;
std::string line;
while (std::getline(file, line)) {
std::istringstream iss(line);
std::string cell;
int count = 0;
// 分割每列数据
while (iss >> cell) {
++count;
if (count == 4) { // 假设每一行有四列
columnData.push_back(cell); // 只保留第三列
break; // 结束当前行的处理
}
}
}
file.close();
return columnData;
}
int main() {
try {
std::vector<std::string> data = readThirdColumn("your_file.txt");
for (const auto& value : data) {
std::cout << value << " ";
}
std::cout << "\n";
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
}
return 0;
}
```
这个程序会读取名为"your_file.txt"的文本文件,提取出每一行的第三列数据并存储在`columnData`向量中。注意,这个例子假设文件格式是四列数据,如果实际文件结构不同,你需要相应地调整分割条件。
阅读全文