2015-11-25 2 views
2

Не знаете, почему моя петля не работает, она продолжает прилипать каждый раз, когда я пытаюсь ввести:/ Я надеюсь на выход, который просто показывает количество различных типов, которые я перечислял.Подсчет символов в C++

#include <iostream> 
#include <string> 
#include <iomanip> 
#include <cctype> 

using namespace std; 
int main() { 
char ch; 
int puncCount = 0; 
int letterCount = 0; 
int digitCount = 0; 
int spaceCount = 0; 

cout << "The characters which you'd like!" << endl; 
cout << "Type a line with a single 'Q' to stop \n" << endl; 
cin.get(ch); 

while (ch != 'q') 
{ 

    letterCount += isalpha(ch); 
    puncCount += ispunct(ch); 
    digitCount += isalnum(ch); 
    spaceCount += isspace(ch); 

} 

cout << "Letter count is" << letterCount << endl; 
cout << "Puncuation count is" << puncCount << endl; 
cout << "Digit count is" << digitCount << endl; 
cout << "Space count is" << spaceCount << endl; 
return 0; 
} 

ответ

0

Вы не повторяете вызов, чтобы получить символы в цикле. Кроме того, проверьте «q» и «Q», если это ваша цель.

5

Вам нужно положить еще один звонок, чтобы получить вход в цикле:

while (ch != 'q') 
{ 
    // ... 
    cin.get(ch); 
} 
+0

Спасибо, сэр! :) – XTyke

+0

@XTyke проблем нет. Не забудьте также проверить «Q». – Duncs

+0

Если этого ответа было достаточно для решения вашей проблемы @XTyke, тогда вы должны отметить это как ответ на свой вопрос. Благодарю. – Duncs

Смежные вопросы