即使我使用系统暂停方法并且显示相同数量的元音和辅音不正确,我的程序每次输入输入时都会崩溃。发生了什么事?
int main() {
// declare vars
char ch;
int vowels = 0;
int consonants = 0;
string word = "temp";
// prompt user
cout << "Please enter a word: ";
cin >> ch;
// loop vowels and consonants
for (int i = 0; i < word.size(); i++) {
ch = toupper(word[i]);
switch (ch) {
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowels++;
break;
default:
consonants++;
}
}
// show num of vowels and consanants
cout << "Number of Vowels: " << vowels << endl;
cout << "Number of Consanants: " << consonants << endl;
// pause and exit
getchar();
getchar();
return 0;
}
答案 0 :(得分:1)
通常最好输入一个完整的字符串,然后解析...但是如果由于某种原因你需要在输入字符时输出字符,你可以使用cin.get()
。如果您想使用#include <cctype>
,请务必toupper()
。
char nextChar;
nextChar = cin.get();
nextChar = toupper(nextChar);
int consonants = 0;
int vowels = 0;
int words = 0;
while (nextChar != '\n')
{
switch (nextChar)
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowels++:
break;
case ' ':
words++;
break;
default:
consonants++;
break;
}
}
cout << "There were " << consonants << " consonants and " << vowels << " vowels in " << words << " words.";
而不是以换行结尾,如果您想限制为一个单词,只需将(nextChar != '\n')
替换为(nextChar != ' ')
。
答案 1 :(得分:0)
答案 2 :(得分:-1)
代码中的一些问题:
#include <iostream>
#include <string>
using namespace std;
int main() {
// declare vars
char ch;
int vowels = 0;
int consonants = 0;
string word = "temp";
// prompt user
cout << "Please enter a word: ";
cin >> word;
// loop vowels and consonants
for (int i = 0; i < word.size(); i++) {
ch = toupper(word[i]);
switch (ch) {
case 'A':
vowels++;
break;
case 'E':
vowels++;
break;
case 'I':
vowels++;
break;
case 'O':
vowels++;
break;
case 'U':
vowels++;
break;
default:
consonants++;
}
}
// show num of vowels and consanants
cout << "Number of Vowels: " << vowels << endl;
cout << "Number of Consanants: " << consonants << endl;
// pause and exit
getchar();
getchar();
return 0;
}
答案 3 :(得分:-1)
好的,所以这不是一个很好的答案,但它有点太详细,不能发表评论......
我刚刚运行了你的代码,它工作正常。我添加了以下三个库
#include<string>
#include<iostream>
#include<stdio.h>
然后:
using namespace std;
然后使用g++ filename
编译。
检查以确保您的库是最新的,并且您正确编译代码。
希望这有帮助。