發問時間: 電腦與網際網路程式設計 · 1 0 年前

幫個忙 很急

以下的程式 誰能幫個忙找出錯誤

'std::fstream' 的條件式運算式不合法模稜兩可的使用者定義轉換<

編譯後的錯誤

short status;//0:normal , 1:deleted;

char seat[3];

char name[11];

short score[3]; //國英數

int total;

};

char menu();

void add_data();

void update_data();

void display();

void delete_data();

fstream file;

void main()

{

char ch;

int delete_key=0;

file.open("R_stru.dat",ios::in|ios::out|ios::binary);//輸入讀檔;輸出寫入;開啟二進位檔

do

{

ch = menu();

switch (ch)

{

case '1':add_data();//新增

break;

case '2':update_data();//更新

break;

case '3':display();//查詢

break;

case '4':delete_data();//刪除

delete_key=1;

break;

}

} while (ch!='0');

if (delete_key==1)

{

rec student;

ofstream outfile("tem.dat",ios::app|ios::binary);

file.seekg(0);//檔首

file.read((char*)&student,sizeof(rec));

while (file)

{

if (student.status==0)//正常資料需存檔

outfile.write((char*)&student,sizeof(rec));

file.read((char*)&student,sizeof(rec));

}

file.close();//關檔R_stru.dat

outfile.close();//關檔tem.dat

remove("R_stru.dat");//刪檔

rename("tem.dat","R_stru.dat");//更改檔名

}

cout << "\n按任意鍵結束.";

getch();

}//main

1 個解答

評分
  • 1 0 年前
    最佳解答

    file.read((char*)&student,sizeof(rec));

    outfile.write((char*)&student,sizeof(rec));

    file.read((char*)&student,sizeof(rec));

    把這 3 行的(char*)刪掉.

還有問題?馬上發問,尋求解答。