私のラボ作業では、txtからデータを読み取り、バイナリ形式で.datファイルに書き込む必要があります。次に、バイナリファイル内の指定されたIDでデータを検索して見つける必要があります。この中の私たちのworker.txt
ファイル
フォーマット:
ID firstname lastname age salary
お気に入り:
341 Alex Morgan 32 3400
234 Jessica Gibson 28 2000
...
プログラムはこれらのデータを読み取り、それらすべてをバイナリファイルとしてworker.datに書き込みます。
問題は、プログラムを検索するための有効なIDを入力すると、それを見つけて印刷しますが、Windowsが実行停止エラーで閉じた場合、それを処理するためにあなたの助けが必要です。
私のsearchByID関数:
void searchByID( int key )
{
bool find=false;
int id,age,sal;
string fn,ln;
ifstream InFile;
InFile.open("worker.dat", ios::in | ios::binary);
int i = getSize( initialArr );
int j;
for( j=0; j<i; j++ ){
InFile.read( (char*)&id, sizeof(int));
InFile.read( (char*)&fn, sizeof(string));
InFile.read( (char*)&ln, sizeof(string));
InFile.read( (char*)&age, sizeof(int));
InFile.read( (char*)&sal, sizeof(int));
if( id == key )
{
cout << "Datas for Entered ID:\n"
<< id <<" "<< fn <<" "
<< ln <<" "<< age <<" "
<< sal << endl;
find = true;
}
}
if( !find )
cout << "Entered ID not Found on File" << endl;
InFile.close();
}