当我通过for循环时,应该覆盖变量hey
,所以如果我不输入1,它会说“bye”,但是如果我在循环时输入1,那么应该说“你好”,而是说“再见”。
#include <iostream>
using namespace std;
int main(){
char hey;
for (int n = 0; n <= 10; n++){
cout << "enter 1" << endl;
cin >> hey;
if (hey == 1)
cout << "hello\n";
else
cout << "bye";
}
}
答案 0 :(得分:1)
ASCII数字49的字符'1'
与数字1不同
使用
if (hey == '1')
如果你想将某些东西与角色a进行比较,你也必须使用'a'
。这里也一样。
答案 1 :(得分:1)
问题是hey
的类型为char
。因此,从控制台读取的输入被解释为char
。您可以进行比较if (hey == '1')
或将hey
的类型更改为int
等内容。
答案 2 :(得分:0)
将char hey
更改为int hey
。它会像你期望的那样工作。
答案 3 :(得分:0)
如果用户输入&#39; 1&#39;,则char将是&#39; 1&#39;的字符代码,即49.
https://msdn.microsoft.com/en-us/library/60ecse8t(v=vs.80).aspx
您可以将代码更改为
if (hey == '1')
或
if (hey == 49)
顺便说一下,这篇文章的标题不正确。
答案 4 :(得分:0)
您正在将Ascii字符值与Integer进行比较。 Ascii值为1