我想出了下面的代碼:如何從文件中讀取雙精度值?
#include <stdio.h>
#include <iostream>
#include <fstream>
int main() {
std::ifstream a0;
a0.open("data/a0", std::ios::in | std::ios::binary);
double d;
a0 >> d;
printf("%e\n", d);
}
我
g++ -s -Wall -Wextra -pedantic -std=c++0x -o program program.cpp
編譯,但它不工作 - 它打印0(實際前8個字節的文件是3D 8F A0 BB E0 00 00 00
)。 更有趣的是,當data/a0
文件不存在時,會輸出垃圾,但是如果文件確實存在,則輸出始終嚴格爲0.
我在做什麼錯?
我一定是失明的(謝謝!是否有一種簡單的方法可以使這個閱讀成爲大尾序中的雙數? – Rogach
@Rogach恐怕沒有,你必須將它讀入內存中'unsigned char [sizeof(double)]'或'std :: arrray'),並自己轉換它 –
Angew
哼。好吧,所以我不需要轉換。非常感謝! – Rogach