char ch;
//Get data from user
cout << "Enter your sentence on one line followed by a # to end it: " << endl;
while (cin >> character && character != '#')
{
cin.get(ch);
ch = static_cast<char>(toupper(ch));
outFile << ch;
if (character == 'A' || character == 'E' || character == 'I' || character == 'O'
|| character == 'U')
{
vowelCount ++;
}
}
outFile << "number of vowels: " << vowelCount << endl;
Я пытаюсь ввести предложение, прочитать, сколько гласных, пробелов и других символов у него есть. Но vowelCount никогда не прав, и я не могу заставить его написать одно и то же предложение в выходной файл. Любые намеки?C++ simple IO vowel count program
Вы уже читаете в 'character'. Зачем читать снова в 'ch'? Кроме того, вам, возможно, захочется прочитать, что такое гласный и сколько есть. – pmr
хуже, тем не менее, чтение в 'character' просто пропустило пробелы! Вы только хотите использовать что-то вроде 'cin.get (ch)'. Другая проблема заключается в том, что аргумент 'toupper()' должен быть положительным целым числом, но 'char' может быть подписан в том случае, например. мое имя может привести к краху вашей программы. Вы хотите использовать что-то вроде 'toupper (static_cast (ch))'. –
Использование оператора 'cin >> character' считывает один символ из стандартного ввода в символьную переменную. Выполнение 'cin.get (ch)' читает второй символ в переменной ch. Вам нужно только выполнить одну из этих операций. Удалите строку 'cin.get (ch)' и попробуйте заменить все ссылки на 'character' на' ch'. – mmodahl