C++ 开关盒仅打印默认值 #包括 #包括 使用名称空间std; int main(){ int n; //仅打印默认值 问题是n是一个整数类型,但是在switch状态中,您将其与chars进行比较
您可以使用这两个选项中的任何一个来修复它C++ 开关盒仅打印默认值 #包括 #包括 使用名称空间std; int main(){ int n; //仅打印默认值 问题是n是一个整数类型,但是在switch状态中,您将其与chars进行比较,c++,switch-statement,C++,Switch Statement,您可以使用这两个选项中的任何一个来修复它 将n更改为字符类型 将比较更改为整数类型 对于选项1,这是一个简单的更改 charn; 对于选项二,将'1','2','3',…更改为1,2,3 开关(n){ 案例1: ... 打破 案例2: ... 打破 ... } 确保在比较时不要特别混淆整数和字符!n是一个int,但您的开关的大小写是chars。确保它们一致,即要么使nachar,要么使开关大小写为int。案例“1”:案例1:等等。v‘
n
更改为字符类型charn;
对于选项二,将'1'
,'2'
,'3'
,…更改为1
,2
,3
开关(n){
案例1:
...
打破
案例2:
...
打破
...
}
确保在比较时不要特别混淆整数和字符!
n
是一个int
,但您的开关的大小写是char
s。确保它们一致,即要么使n
achar
,要么使开关大小写为int。案例“1”:
案例1:
等等。v‘<代码>1’<代码>取决于你的平台上的字符编码。有趣的是C++标准不允许1。@芭丝谢芭,真的吗?我不知道那个限制。为什么?还是说,规则是什么?@ 0, 1, 2,…,9必须是连续的任何编码。<代码> '0' <代码>不能是0,因为后者是TH。e NUL终止符-用于表示C样式字符串的结尾。因此,'1'
不能是1。这个答案基本上是正确的,但请注意,char
是一个整数类型,就像n
一样。这里的根本问题是int
和char
的流提取器执行不同的操作输入一个gs。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
//only printing the default value
cout<<"Press 1 for Hindi, Press 2 for English, Press 3 for Punjabi, ess 4 for Japanese."<<endl;
cin>>n;
switch (n)
{
case '1':
cout<<"Namaste";
break;
case '2':
cout<<"Hello";
break;
case '3':
cout<<"Sat Shri Akal";
case '4':
cout<<"Ohaio gosaimas";
break;
default:
cout<<"I am still learing more!!!";
}
return 0;
}