使用ofstream以二进制方式写入四个double类型的数,在使用ifstream读出时数组变得很长
时间: 2024-04-29 20:24:22 浏览: 82
ofstream和ifstream用法
5星 · 资源好评率100%
可能是因为您在读取时没有正确处理文件指针的位置。请确保在读取时将文件指针设置为正确的位置,即从文件开头读取并跳过任何文件头或标记。您可以使用seekg()函数设置文件指针的位置。
另外,请确保您的读取循环正确处理每个double类型的数,并将其存储在正确的位置。如果您的数组长度变得很长,可能是因为您正在读取过多的数据或将数据存储在错误的位置。
以下是一个简单的示例代码,演示如何使用ofstream和ifstream以二进制方式写入和读取四个double类型的数:
```
#include <iostream>
#include <fstream>
using namespace std;
int main() {
double arr[4] = { 1.0, 2.0, 3.0, 4.0 };
// 写入数据
ofstream fout("data.bin", ios::binary);
fout.write((char*)arr, sizeof(arr));
fout.close();
// 读取数据
ifstream fin("data.bin", ios::binary);
double readArr[4];
fin.read((char*)readArr, sizeof(readArr));
fin.close();
// 打印结果
for (int i = 0; i < 4; i++) {
cout << readArr[i] << " ";
}
cout << endl;
return 0;
}
```
这个程序将输出:
```
1 2 3 4
```
请注意,程序使用了类型转换将double数组转换为char数组,并使用sizeof()函数来确定要写入/读取的数据的大小。这是为了确保我们正确地写入和读取四个double类型的数。
阅读全文