Почему я получаю фатальную ошибку C1075, я проверил код и ничего не случилось - PullRequest
0 голосов
/ 02 мая 2019

Я - ранний программист на C ++, и я хотел создать простую маленькую игру на CMD с C ++. Почему я получаю

фатальная ошибка C1075: конец файла найден перед левой скобкой и файлы чтения и записи не работают

Я проверил каждую строку, и ничего не показалось неправильным.

Я проверил каждую строку, и ничего не показалось неправильным. Никакой «кудрявой» красной линии не появилось у меня ни на одном персонаже. Может быть, мои глаза не правы.

std::cout << "Enter 1 to Play: ";
int play = 0;
std::cin >> play;

if (play == 1) {
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << "                          +=======================================+\n";
  std::cout << "                          ||            CMD Math Tester          ||\n";
  std::cout << "                          ||              Version 1.0            ||\n";
  std::cout << "                          ++-------------------------------------++\n";
  std::cout << "                          ||         Answer the questions.       ||\n";
  std::cout << "                          +=======================================+\n";
  std::cout << " \n";
  std::cout << " \n";
  std::cout << "What is 2+2: ";
  int answerExpected = 4;
  int answerOfUser = 0;
  std::cin >> answerOfUser;
  if (answerOfUser == answerExpected) {
    std::cout << "That is correct!\n";
    std::cout << " \n";
    std::cout << "What is 10+11: ";
    answerExpected = 21;
    answerOfUser = 0;
    std::cin >> answerOfUser;
    if (answerOfUser == answerExpected) {
      std::cout << "That is correct!\n";
      std::cout << " \n";
      std::cout << "What is 100+200: ";
      answerExpected = 300;
      answerOfUser = 0;
      std::cin >> answerOfUser;
      if (answerOfUser == answerExpected) {
        std::cout << "That is correct!\n";
        std::cout << " \n";
        std::cout << "What is 500-250: ";
        answerExpected = 250;
        answerOfUser = 0;
        std::cin >> answerOfUser;
        if (answerOfUser = answerExpected) {
          std::cout << "That is correct!\n";
          std::cout << " \n";
          std::cout << "What is 5*2: ";
          answerExpected = 10;
          answerOfUser = 0;
          std::cin >> answerOfUser;
          if (answerOfUser == answerExpected) {
            std::cout << "That is correct!\n";
            std::cout << " \n";
            std::cout << "What is 5*5: ";
            answerExpected = 25;
            answerOfUser = 0;
            std::cin >> answerOfUser;
            if (answerOfUser == answerExpected) {
              std::cout << "That is correct!\n";
              std::cout << " \n";
              std::cout << "What is 200*5: ";
              answerExpected = 1000;
              answerOfUser = 0;
              std::cin >> answerOfUser;
              if (answerOfUser == answerExpected) {
                std::cout << "That is correct!\n";
                std::cout << " \n";
                std::cout << "What is the sqrt of 16: ";
                answerExpected = 4;
                answerOfUser = 0;
                std::cin >> answerOfUser;
                if (answerOfUser == answerExpected) {
                  std::cout << "That is correct!\n";
                  std::cout << " \n";
                  std::cout << "What is the sqrt of 81: ";
                  answerExpected = 9;
                  answerOfUser = 0;
                  std::cin >> answerOfUser;
                  if (answerOfUser == answerExpected) {
                    std::cout << "That is correct!\n";
                    std::cout << " \n";
                    std::cout << "What is the absolute of 420: ";
                    answerExpected = 420;
                    answerOfUser = 0;
                    std::cin >> answerOfUser;
                    if (answerOfUser == answerExpected) {
                      std::cout << "That is correct!\n";
                      std::cout << " \n";
                      std::cout << "What is the absolute of -639: ";
                      answerExpected = 639;
                      answerOfUser = 0;
                      std::cin >> answerOfUser;
                      if (answerOfUser == answerExpected) {
                        std::cout << "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
                        std::cout << "|       Congratulations       |\n";
                        std::cout << "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
                        std::cout << " \n";
                        std::cout << " \n";
                        std::cout << "You Have passed the test!\n";
                      } else {
                        std::cout << "That is wrong.\n";
                      }
                    } else {
                      std::cout << "That is wrong.\n";
                    }
                  } else {
                    std::cout << "That is wrong.\n";
                  }
                } else {
                  std::cout << "That is wrong.\n";
                }
              } else {
                std::cout << "That is wrong.\n";
              }
            } else {
              std::cout << "That is wrong.\n";
            }
          } else {
            std::cout << "That is wrong.\n";
          }
        } else {
          std::cout << "That is wrong.\n";
        }
      } else {
        std::cout << "That is wrong.\n";
      }
    } else {
      std::cout << "That is wrong.\n";
    }
  } else {
    std::cout << "Enter 1 to Play: ";
    std::cin >> play;
  }

1 Ответ

1 голос
/ 02 мая 2019

Если вы получите полное сообщение об ошибке, вы получите что-то вроде

фатальная ошибка C1075: конец файла найден перед левой скобкой и файлы чтения и записи не работают

Это означает, что вы недостаточно закрыли блок, чтобы открыть их (их больше {, чем }).

Чтобы исправить проблему, лучше сделать отступ в исходном коде.

Некоторые инструменты, такие как indent, сделают это за вас. Вы даже можете найти некоторые инструменты онлайн .


Но в вашем коде есть другие проблемы:

  • нет main
  • в том числе отсутствуют
  • if (answerOfUser = answerExpected) (= вместо == по 4-му вопросу) - это не то, что вы хотите



Тем не менее, было бы гораздо проще разделить ваш код на различные функции для улучшения читабельности.

Поскольку ваша игра состоит в том, чтобы задавать ряд вопросов, вы могли бы начать с одной функции за вопросом ... Но этот пункт обсуждения имеет свое место больше на https://codereview.stackexchange.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...