在C++的一行中初始化多个变量
Initializing multiple variables in one line in C++
这是我的程序代码,该程序应该提示用户提供单个字母,然后报告该字母是元音还是辅音:
#include <iostream>
using namespace std;
int main() {
cout << "input a single letter";
int var;
cin >> var;
int vowel = 'a','e','i','o','u';
int consonant = 'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'
if (var == vowel) {
cout << "vowel";
} else if (var == consonant) {
cout << "consonant";
} else if (var != vowel && var != consonant) {
cout << "Error";
}
return 0;
}
我对C++非常陌生,并且正在尝试了解为什么我会收到错误消息。
此代码对于您正在尝试的内容是完全错误的。 您正在以int
eger 而不是char
执行者的身份读取输入。 您没有正确初始化vowel
和consonant
变量,也没有正确地将var
与它们进行比较。 您没有检查输入错误。 您没有处理大写字母。
尝试更多类似的东西:
#include <iostream>
#include <cctype>
using namespace std;
int main() {
cout << "input a single letter";
char var;
if (cin >> var) {
var = (char) ::tolower( (unsigned char)var );
if ((var >= 'a') && (var <= 'z')) {
if ((var == 'a') || (var == 'e') || (var == 'i') || (var == 'o') || (var == 'u')) {
cout << "vowel";
} else {
cout << "consonant";
}
/* alternatively:
switch (var) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
cout << "vowel";
break;
default:
cout << "consonant";
break;
}
*/
}
else {
cout << "Error";
}
}
else {
cout << "Input Error";
}
return 0;
}
或者:
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
const string vowels = "aeiou";
const string consonants = "bcdfghjklmnpqrstvwxyz";
int main() {
cout << "input a single letter";
char var;
if (cin >> var) {
var = (char) ::tolower( (unsigned char)var );
if (vowels.find(var) != string::npos) {
cout << "vowel";
} else if (consonant.find(var) != string::npos) {
cout << "consonant";
} else {
cout << "Error";
}
}
else {
cout << "Input Error";
}
return 0;
}
相关文章:
- 初始值设定项列表是否只接受使用相同类型的值初始化变量?
- 在 C++ 中访问 lambda 捕获初始化变量
- 为什么C++不支持对未初始化变量进行智能分析?
- 使用 clang++ 和 g++ 在C++中初始化变量
- C++使用 lambda 初始化变量
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- C++ - 输出与初始化变量不同?
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在C++中,为什么int可以使用new运算符初始化变量,而double不能
- 具有静态存储持续时间的常量初始化变量的初始化顺序
- C++ 中的初始化变量
- C++中未初始化变量的值
- 如何在需要提及需要循环声明的其他类的类中初始化变量?
- 我想知道在构造函数中初始化变量时的生命周期
- 读取恰好具有良好值的未初始化变量
- 如何在 getter 的父类中初始化变量的情况下访问子类中的变量
- 为什么在 c++ 中有多种初始化变量的方法
- 没有参数的默认构造函数是否总是初始化变量?
- 是否可以使用 lambda 初始化变量(删除复制 ctor 时)
- 使用构造函数跳闸UB的新放置后使用初始化变量