저는 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;
}
파일을 읽기 전에 outstream을 플러시/닫기를 시도하십시오. 버퍼링이 문제가 될 수 있습니다. –
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 당신은 그것을 어떻게 알 수 있습니까? 네가 묻는 것을 얻지 못 하겠니? ?? –
@JoachimIsaksson 그게 고쳐, 고마워! – user2726232