c++一行一行读取文件中的用逗号隔开的浮点数和整数
时间: 2024-10-08 16:14:09 浏览: 43
csv.rar_C csv_C# csv_File Operate csv_c++ csv_读取文件
在C++中,可以使用`fstream`库来逐行读取文件,并利用`getline()`函数获取每一行的内容,然后通过`std::stringstream`或者`std::istringstream`将字符串转换成浮点数或整数。这里是一个简单的示例:
```cpp
#include <fstream>
#include <sstream>
#include <vector>
// 定义一个辅助函数用于解析一行数据
std::vector<double> parse_floats(const std::string &line) {
std::vector<double> values;
std::istringstream iss(line);
std::string token;
while (iss >> token) {
try {
double value = std::stod(token);
values.push_back(value);
} catch (...) {
// 如果无法转换为double,忽略该部分并继续处理下一个
}
}
return values;
}
int main() {
std::ifstream file("your_file.txt");
if (!file.is_open()) {
std::cerr << "Failed to open the file!" << std::endl;
return 1;
}
std::string line;
while (std::getline(file, line)) {
std::vector<double> float_values = parse_floats(line);
// 现在你可以访问float_values,它包含了这一行的所有浮点数
for (const auto &value : float_values) {
// 使用值...
}
}
file.close();
return 0;
}
```
这个示例假设文件中每行的数据都是用逗号分隔的浮点数,如果遇到非数字的部分,会尝试转换并忽略错误。如果你需要同时处理整数,只需稍微调整`parse_floats`函数即可。
阅读全文