c++ - How do I read a double from file? -
i came following code:
#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); }
i compile with
g++ -s -wall -wextra -pedantic -std=c++0x -o program program.cpp
but doesn't work - prints 0 (the actual first 8 bytes of file 3d 8f a0 bb e0 00 00 00
). more interesting, when data/a0
file doesn't exist, garbage output, if file exist, output strictly 0.
what doing wrong?
if file binary, must use unformatted input functions it:
double d; if (!a0.read(reinterpret_cast<char*>(&d), sizeof(d))) { // error occurred } std::cout << d << '\n';
operator >>
formatted input, means expects text in file.
edit
sorry, used get()
instead of read()
, more useful reading text files in binary format.
Comments
Post a Comment