저는 CS202 클래스 용 프로젝트를 진행하고 있습니다. 나는 data.dat
이라고 불리는 알려지지 않은 크기의 제공된 바이너리 파일을 가지고 있으며 파일에서 정수를 읽어서 (적절한 크기의 벡터에 저장해야합니다.) filestream에 fstream()
을 사용해야하고 변환을 위해 reinterpret_cast<char *>()
을 사용해야합니다.fstream을 사용하여 이진 파일에서 읽고 결과를 벡터에 저장하십시오.
fstream filestream2;
//reading binary data from supplied data.dat file
filestream2.open("data.dat", ios::in | ios::binary);
vector<int> v;
filestream2.seekg(0, filestream2.end);
long length = filestream2.tellg();
v.resize(length);
filestream2.read(reinterpret_cast<char *>(&v[0]), length);
for(int num = 0; num < length; num++)
{
cout << v[num] << " ";
}
이론으로, 벡터, 파일에서 모든 정수를 개최 stdout에이를 인쇄해야하지만 내 출력은 단순히 약 50,000, 0 내가 상대적 해요 program exited with exit code 0
다음이다 : 내 코드는 다음과 같습니다 C++ 구문과 라이브러리에 익숙하지 않아서 나 자신의 삶에 대해 내가 잘못하고있는 것을 파악할 수 없다. 미리 감사드립니다. 당신이
filestream2.seekg(0, filestream2.end);
long length = filestream2.tellg();
를 사용하는 경우