バイナリファイルの読み込みに問題があります。これまでバイナリファイルからdoubleを読み込んでベクトルに保存する方法
マイコード:
ifstream file("ns.bin", ios::in | ios::binary | ios::ate);
file.seekg(0, std::ios::end);
size = file.tellg();
file.seekg(0, std::ios::beg);
buffer = new char[size];
file.read(buffer, size);
file.close();
double* double_values = (double*)buffer;//reinterpret as doubles
私の質問は:または、可能でない場合
vector<double> buffer2;
を:どのように私はこのタイプのベクターにdouble_values
からダブルスを取得するにはどうすればよいです私はdouble_values
から二倍の数を得るのですか?
sbが私に感謝することを願っています!
ありがとう!あなたはaswerと良い説明:)私は別の質問が多分あなたはアイデアを持っている:)私はcoutとベクトルを印刷しようとしたと私はダブルサイズ/ sizeof(ダブル)の数を設定...とそれが動作します。それはすべてのダブル(size/sizeof(double)も正しい数字です)を印刷しますが、最後にはsthも表示されますが、スペースを印刷しているようには見えません。だから私は2dここに彼はprintinいくつかの0秒です...あなたはなぜアイデアを持っていますか? – Ildon
あなたの問題が何であるかを知るのは少し難しいですが、最後の要素を過ぎて印刷しようとしていると思います。 'cout << buffer2 [buffer2.size()]'は未定義の振る舞いです –