c++ 读取txt浮点型文件
时间: 2024-12-08 13:13:32 浏览: 11
浮点型数据同整型数据一样。-谭浩强c++简单详细版
在C++中,要从文本文件(.txt)中读取浮点数,你可以使用标准库中的`fstream`来操作文件。以下是一个简单的步骤:
1. 打开文件:首先,你需要创建一个`ifstream`对象并打开文件。如果文件不存在,你需要处理可能出现的错误。
```cpp
#include <fstream>
#include <iostream>
std::ifstream inputFile("filename.txt");
```
2. 检查文件是否成功打开:确保文件已正确打开,如果没有,则输出错误信息并退出程序。
```cpp
if (!inputFile) {
std::cerr << "Error opening file." << std::endl;
return 1; // 返回错误代码
}
```
3. 遍历文件:逐行读取文件,每行可能包含多个浮点数,所以通常你会读取一行然后分割成浮点数列表。
```cpp
std::string line;
while (std::getline(inputFile, line)) {
std::istringstream iss(line);
float num;
while (iss >> num) {
// 这里做些处理,比如存储到数组或容器中
std::cout << num << " ";
}
if (iss.fail()) break; // 如果不能解析为数字就跳过该行
}
```
4. 关闭文件:遍历结束后,别忘了关闭文件。
```cpp
inputFile.close();
```
完整代码示例:
```cpp
#include <fstream>
#include <iostream>
#include <sstream> // 使用istringstream来处理字符串
int main() {
std::ifstream inputFile("filename.txt");
if (!inputFile) {
std::cerr << "Error opening file." << std::endl;
return 1;
}
std::string line;
while (std::getline(inputFile, line)) {
std::istringstream iss(line);
float num;
while (iss >> num) {
// 假设你将这些浮点数添加到了名为float_list的容器中
float_list.push_back(num);
}
if (iss.fail()) break;
}
inputFile.close();
// 现在你可以用float_list处理数据了
for (const auto& num : float_list) {
std::cout << num << "\n";
}
return 0;
}
```
阅读全文