Моя программа работает в основном хорошо, пока я не решу, чтобы ввести значение сторожевого остановить программу, и она выводит сообщение об ошибке «Exception брошенным в 0x00B474AD в проекте 4.exe: 0xC0000005: Access. Нарушение письма расположение 0x00B52FF9Почему моя программа вылетает, когда я вводим значение часового?
If есть обработчик для этого исключения, программа может быть безопасно продолжена ». Я пытаюсь выяснить, что вызывает ошибку, может ли быть, что строка инициализирована на 0, так что это всегда верно?
здесь код
#include<iostream>
#include<string>
#include <iomanip>
using namespace std;
#include "C:\Users\barta\OneDrive\Documents\Visual Studio 2015\Projects\Project 4\Project 4\array.h"
void displayPlane(char msg[], char[ROW][COL]);
void getData(int &, char &);
int main()
{
int row = 0;
char seat;
while (row != -1)
{
displayPlane("\tChesapeaake Airlines", layout);
cout << endl;
getData(row, seat);
cout << endl;
int COL = seat - 'A';
if (layout[row - 1][COL] == 'X')
{
cout << "Sorry this seat is take" << endl;
}
else
{
layout[row - 1][COL] = 'X';
}
}
cout << "Have a nice day! " << endl;
system("pause");
return 0;
}
void displayPlane(char msg[] , char[ROW][COL])
{
cout <<msg << endl;
for (int r = 0; r < ROW; r++)
{ cout << endl;
cout << setw(4) << r + 1;
for (int c = 0; c < COL; c++)
{
cout << setw(4) << layout[r][c];
}
}
}
void getData(int& row, char& seat)
{
cout << "Enter row <-1 to stop> ";
cin >> row;
cout << "Enter your prefered seat ";
cin >> seat;
seat = toupper(seat);
}
и здесь заголовочный файл
//arrays for airline problem
const int ROW = 9;
const int COL = 4;
const int CTR = 3;
//initial seats in the plane
char layout[ROW][COL] = { { 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' }};
int classCtr[CTR] = {0,0,0};
string classes[] = {"First Class", "Business Class", "Coach"};
double fare [] = {500, 300, 100};
Я понимаю вашу логику, но мой профессор хочет, чтобы функция была недействительной, так что idk, если это будет работать –
Придерживайтесь первой половины ответа, то есть 'return;' после обнаружения часового устройства сразу после пользователя вводит его. – kfsone
Спасибо, что этот трюк! В основном, я смотрел, что часть контрольной суммы не определяется –