-7

私は CPP (c++) プログラムを持っていますが、コンパイルすると ma エラーが発生します...

エラー: while を含む関数はインライン展開されません。while文の問題は何ですか?

これらは私が使用しているヘッダーファイルです。

#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
#include<conio.h>
#include<process.h>
#include<fstream.h>




 void query(long unsigned int en)
{
  int found=0;
  ifstream infile("student.dat");
  /* read the record */

  while(infile.read((char *)this,sizeof(student)))
{
  if(e_no==en)
  {
  found=1;
  query_list();
  gotoxy(26,4);
  cout<<"Query Output";
  gotoxy(35,7);
  cout<<e_no;
  gotoxy(35,8);
  cout<<name;
  fflush(stdin);
  getch();
}
  }//end of while
if(!found){clrscr();
  cout<<"Enrolment No. not found";
  getch();}
  infile.close();
}//end of query
4

1 に答える 1

2

プログラムが実行されない理由の 1 つは、thisポイントを にキャストしてからchar*データを読み込むことで、ポイントを破壊または破損する可能性があるためです。これはほぼ確実に間違っており、やりたいことではありません。

また、C++ スタイルのインクルードを使用してください。<iostream.h>ドードーより先にドードーの道を進んだ。また、 C と C++ スタイルの IO を処理したり、混合したりしないfflushでください。stdin

于 2013-05-09T10:29:28.313 に答える