我有一個二進制文件,其中包含一個double類型的數字。
示例輸入文件可在這裏找到:www.bobdanani.net/download/A.0.0
我想閱讀文件並在其中打印數字。 這是我做了什麼:C++讀取包含數字類型雙精度的二進制文件
char* buffer;
int length;
string filename = "A.0.0";
ifs.open (filename.c_str(), ios::in | ios::binary);
// get length of file:
ifs.seekg (0, ios::end);
length = ifs.tellg();
ifs.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
ifs.read (buffer,length);
ifs.close();
cout.write (buffer,length);
cout << buffer << endl;
delete[] buffer;
我也曾嘗試使用類型轉換打印數量時增加一倍,但我得到了奇怪的字符。做這個的最好方式是什麼?我需要這個二進制文件的數據作爲並行程序的函數的輸入。但是這不在這個問題的範圍之內。
也許你需要在使用它之前初始化緩衝區,就像這樣:memset(buffer,0,length) –
如果不知道文件中double的格式,就不可能回答這個問題。 「二進制」不是格式;而二進制double可以有許多不同的格式。 –
另外,_binary_文件不太可能通過_text_字符(如空格/製表符)來分隔值。爲什麼你甚至需要分離? – MSalters