C++从文件中读取一行double类型数据,并以空格分割
时间: 2024-10-12 14:13:57 浏览: 27
在C++中,如果你想从文件中读取一行double类型的值,并通过空格将其分割成一组值,你可以使用`getline()`函数读取字符串,然后使用`std::istringstream`对象和`std::stod()`函数逐一转换成double。以下是一个简单的示例:
```cpp
#include <fstream>
#include <sstream>
#include <vector>
std::vector<double> splitDoubleValues(const std::string &filename, char delimiter = ' ') {
std::ifstream file(filename);
std::vector<double> values;
if (!file.is_open()) {
std::cerr << "无法打开文件 " << filename << std::endl;
return values;
}
std::string line;
getline(file, line); // 读取一行
std::istringstream iss(line);
double value;
while (iss >> value) {
values.push_back(value);
// 如果需要继续分隔,添加另一个循环条件(比如,iss.peek() != delimiter)
}
file.close();
return values;
}
int main() {
std::vector<double> numbers = splitDoubleValues("data.txt", ' ');
for (double num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
这个函数会读取文件中的一行,用空格作为分隔符,然后将每个双精度数字存入`values`向量中。
阅读全文