Почему компилятор пропускает мою инструкцию while? - PullRequest
0 голосов
/ 02 декабря 2019

Это простое и глупое упражнение, которое я разработал для практики на C ++.

Проблема здесь в том, что когда я вручную ввожу 'h' в терминале, я ожидаю увидеть вывод, который я построил в цикле if. Однако вместо этого терминал возвращает цикл while. Я подозреваю, что это потому, что я неправильно использовал тип данных, хотя я не уверен.

Вот что я написал:

#include <iostream>
using namespace std;

int main() { 

char letter;
int attempts = 0;
char h;

cout << "Welcome user.\n\n";
cout << "Before we begin,\n";
cout << "might I ask what your favorite letter is?\n";
cout << "For arbitrary reasons only.\n\n";
cin >> letter;




  while (letter !=h && attempts <= 2) {
      cout << "That is a sad letter\n";
      cout << "and not the kind of letter we're looking for here.\n";
      cout << "Please choose another.\n\n";
      cin >> letter;
      attempts++;
  }

  if (letter == h) {
      cout << "Ah, what a wonderful letter.\n";
      cout << "Let us continue on and not worry ourselves with such trivial matters\n";
  }

}

Ответы [ 2 ]

0 голосов
/ 02 декабря 2019

Вам нужно указать значение h, чтобы это работало. например, char h = 'h';

0 голосов
/ 02 декабря 2019

Вам нужно либо поставить одинарные кавычки вокруг 'h' в цикле while и if if, либо присвоить 'h' вашей переменной (char h = 'h'). Только сделайте одно из них, но не оба, или они взаимно уничтожат друг друга. Надеюсь, это поможет.

...