Я новичок в C++, так что это, вероятно, будет очень очевидно.C++, Почему мой массив пуст?
В моей программе я делаю массив, записывая его в двоичный файл, а затем читаю его в другой массив и печатаю его.
Я не могу читать из двоичного файла в новый массив. Когда я пытаюсь распечатать новый массив, становится ясно, что он пуст. Можете ли вы помочь мне понять, что я сделал неправильно?
int main(){
int N;
std::cin >> N;
int* array = new int[N*N];
for(int row = 0; row < N; row++){
for(int column = 0; column < N; column++){
array[row*N + column] = (row + column)%10;
cout << array[row*N + column];
}
cout << "\n";
}
//----------------------------------------------------
ofstream out("array.txt", ios::out | ios::binary);
out.write((char*)array,N*N*sizeof(int));
//------------------------------------------------------
int* altArray = new int[N*N];
ifstream in;
in.open("array.txt", ios::in | ios::binary);
in.read((char*)altArray, N*N*sizeof(int));
//-----------------------------------------------------
cout << "From Binary File\n";
for(int row = 0; row < N; row++){
for(int column = 0; column < N; column++){
cout << altArray[row*N + column];
}
cout << "\n";
}
//----------------------------------------------------
delete []array;
delete []altArray;
return 0;
}
Попробуйте промыть/закрыть выход, прежде чем пытаться прочитать файл. Я подозреваю, что буферизация может быть вашей проблемой. –
** Как ** вы замечаете, что это «нет»? Я не понимаю, что вы просите? –
@JoachimIsaksson Это исправило это, спасибо! – user2726232