Здесь появляется новый вопрос после моего предыдущего вопроса :
Я расширил код для ввода / вывода матричных двоичных файлов, и при тестировании простой операции записи и чтения я получил только первую строку матрицы ...
Мне не удалось найти мою ошибку, вот новый код:
double** bytes_to_matrix_block(std::ifstream& iF, int size1, int size2) {
double** m = new double*[size1];
double read;
int i = 0, j = 0;
if(!iF) {
std::cout << "opening file for reading error";
throw 1;
}
while(i < size1 && !iF.eof()) {
m[i] = new double[size2];
while(j < size2 && !iF.eof()) {
iF.read( reinterpret_cast<char*>( &read ), sizeof read );
m[i][j] = read;
std::cout << read << ", ";
j++;
}
std::cout << std::endl;
i++;
}
if(i < size1 || j < size2) {
std::cout << "premature end of file while reading..." << std::endl;
throw 1;
}
return m;
}
void matrix_block_to_bytes(double** m, int size1, int size2, std::ofstream& oF){
if(!oF){
std::cout << "opening file for writing error";
throw 1;
}
double cdbl;
for(int i = 0; i < size1; i++){
for(int j = 0; j < size2; j++){
cdbl = m[i][j];
std::cout << cdbl << ", ";
oF.write( reinterpret_cast<char*>( &cdbl ), sizeof cdbl );
}
std::cout << std::endl;
}
}
Спасибо заранее