我是新來的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;
}
嘗試在嘗試讀取文件之前刷新/關閉出口。我懷疑緩衝可能是你的問題。 –
**你怎麼**注意到_'empty'_?我不明白你在問什麼? –
@JoachimIsaksson修復它,謝謝! – user2726232