Почему программа завершается при запуске, ничего не выводя? - PullRequest
0 голосов
/ 07 августа 2020

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

#include <iostream>

int main() {
  bool entered = false;
  while(entered = false) {
    std::cout << "Please enter thy name: ";
    std::string name;
    std::getline(std::cin, name);
    std::cout << "Hello, " + name;
    int length = name.length();
    if(length > 0) {
      std::cout << "Hello, " + name;
      entered = true;
    } else {
      std::cout << "Thou did not enter thy name";
    }
  }
}

Я уже сделал аналогичную программу в Java с аналогичным форматом, и эта программа отлично работает.

Ответы [ 2 ]

3 голосов
/ 07 августа 2020

Это условие l oop:

while(entered = false) 

неверно. Вместо сравнения false и entered, вы назначаете false entered.

Вместо этого вам нужно сделать:

while(entered == false) 

Если вы включите предупреждения, например, с -Wall компилятор сообщит вам, что вы, вероятно, допустили здесь ошибку.

0 голосов
/ 07 августа 2020

Я вижу, что ваша основная функция начинается с int, но я не вижу return 0, помните, что если ваша функция не void, тогда она должна что-то возвращать.

...