Уникальное поведение моей программы, невозможно определить - PullRequest
0 голосов
/ 15 июля 2011

Возникла некоторая проблема во время выполнения моей программы, и я не могу понять, в чем проблема.

Что происходит в основном, моя программа автоматически закрывается и отображает следующее в Microsoft visualc ++ 2010 express window

enter image description here

Какие могут быть причины для этого?Я понятия не имею, почему это происходит.

Позвольте мне сказать, что в моей программе я слишком часто использовал указатели и использовал массивы символов, которые я записывал на диск

Программа слишком велика для отображения

Эта функция вызывается, после чего моя программа останавливается:

void display_databases()
{


 struct info_of_trains
 {
int train_no;
char train_name[25];
char boarding_pt[25];
char destination[25];
int first_seats;
int fare_first;
int second_seats;
int fare_second;
char  date[20];
    };



    info_of_trains e;

  cout<<"TRno.  TRname     B.pt    D.pt    F.seats    F.fare   S.seats   F.second   Date\n";
  FILE *fp;
  fp=fopen("database","r");
  if(fp==NULL)
  {
cout<<"failure";
  }
  else
  {
  while(fread(&e,sizeof(e),1,fp)==1)
  {

printf(e.train_no,e.train_name,e.boarding_pt,e.destination,e.first_seats,e.fare_first,e.second_seats,e.fare_second,e.date);
  cout<<"-------------------------------------------------------------------------------\n";
   }
   fclose(fp);
   }
   }

Здесь останавливается выполнение:!

1 Ответ

1 голос
/ 15 июля 2011

Вы, кажется, достигли точки останова, или ваша программа имела нарушение прав доступа (чтение недопустимого указателя).Вы также, кажется, развернули / отсоединили панели отладки.Вы можете снова прикрепить панель, перетащив желтую полосу вверху в нижнюю часть экрана.

Получили ли вы предупреждение до того, как это произошло?В противном случае вы определили точку останова (щелкнув в левом поле редактора кода, чтобы там появился красный кружок)

РЕДАКТИРОВАТЬ: Как указано в комментариях, ошибка возникает из-заВы используете printf неправильный путь.Вместо этого используйте cout, как вы сделали выше:

cout << e.train_no <<" " <<  e.train_name << " " << e.boarding_pt << " " << e.destination << " " << e.first_seats << " " << e.fare_first << " " << e.second_seats << " " << e.fare_second << " " << e.date << endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...