Итак, у меня есть матрица двойников i на j в C++, которую я хочу прочитать в программе IDL.
Допустим, матрица называется данными, с размером ROWS в COLS и строкой имени, сохраненной в имени файла. И я просто записываю значения в потоке в двоичный файл.
ofstream myfile (filename, ios::binary);
if(myfile.isopen())
{
for (int i = 0; i < ROWS; i++){
for (int j=0; j < COLS; j++){
myfile<<data.at(i,j);
}
myfile.close();
Затем я хочу прочитать его обратно в IDL, но я новичок в работе с двоичными файлами в IDL, и после документации я попал сюда, но это не работает.
function read_binmatrix, filename, ROWS, COLS, thetype
mat = READ_BINARY(filename,DATA_TYPE=thetype,DATA_DIMS=[ROWS-1,COLS-1])
return, mat
end
...
...
matrix = read_binmatrix(file2,num_rows,num_cols,5)
... но я получаю эту ошибку в качестве вывода.
% READ_BINARY: READU: End of file encountered. Unit: 100, File:
...
% Execution halted at: READ_BINMATRIX 21
...
[idl]
? - person Jonny Henly   schedule 25.07.2016myfile<<data.at(i,j);
записывает в файл текст, а не двоичные данные. Для записи в двоичном формате используйтеstd::ofstream::write()
. - person πάντα ῥεῖ   schedule 25.07.2016