在我从循环中的表达式中使用getch()函数捕获它之后,我正在尝试使用"ch"变量.我根本不能使用它,因为它总是返回相同的char代码(1作为int).我知道我可以简单地使用while(1)并从那里开始工作getch(),但它被认为是不好的做法,我想知道为什么它不会以这种方式工作.
#include <iostream>
#include <conio.h>
int main()
{
while (char ch = getch() != 'q')
{
std::cout << ch;
}
}
Run Code Online (Sandbox Code Playgroud)
我在GNU GCC编译器中使用code :: blocks 13.12
顺便说一句..这也行不通
int main()
{
char ch;
while (ch = getch() != 'q')
{
std::cout << ch;
}
}
Run Code Online (Sandbox Code Playgroud)
你正在违反运营商优先权.就像你写的那样:
while (ch = (getch() != 'q'))
Run Code Online (Sandbox Code Playgroud)
这将是1直到q输入a ,此时它将是0.
你的意思是说:
while ((ch = getch()) != 'q')
Run Code Online (Sandbox Code Playgroud)
并且,正如FilipeGonçalves所提到的,ch应该被声明为int,而不是char(getch()返回int)