Как ввести много букв и остановиться после определенного (q или Q)? - PullRequest
0 голосов
/ 27 октября 2019

Мне было поручено выполнить домашнее задание, чтобы ввести столько букв, сколько хочет пользователь, и остановиться после ввода q или Q. Затем программы должны вывести, сколько гласных было в такой строке. Мы должны использовать функцию _getche (), но у меня есть MacBook, поэтому он не работает.

Я пытался создать conio.h. Я также пытался использовать cin.get () и getchar (), но ни одна из них не работает.

Ответы [ 3 ]

0 голосов
/ 27 октября 2019

__getche() не является стандартной функцией, а conio.h не является стандартным заголовком. Обычный способ сделать это:

int main() {
    int ch;
    int vowel_count = 0;
    while ((ch = getchar()) != 'q' && ch != 'Q' && ch != EOF) {
       vowl_count += is_vowel(ch);
    }
}
0 голосов
/ 27 октября 2019
#include <iostream> // getchar(), std::cout
#include <cctype> // tolower()

int main()
{
    int count = 0;
    for (;;) // infinite loop
    {
        char c = getchar(); // read a single char from stdin
        if (tolower(c) == 'q') // if input is 'q' or 'Q'
            break; // break out of the loop
        // check for vowel here
        {
            count++;
        }
    }
    std::cout << "You typed in " << count << " vowels!\n";
    return 0;
}
0 голосов
/ 27 октября 2019

Я думаю, вам это нужно:

#include <conio.h>
using namespace std;

int main()
{
    bool h = true;
    while(h){
        char ch;
        ch = getche();
        if(ch=='q' || ch == 'Q'){
           h = false; 
        }
    }

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