C语言在控制台自动循环输出的问题
控制台自动循环数组(在我什么都不按的情况下),按A或B输出一句话然后继续循环列表,只有在我按s会停止程序。试了几次都不行,要么是程序会停下等我输入,要么报错
用什么方法可以既不停止程序,又能获取我输入的字符呢??
#include <stdio.h>
#include <conio.h>
int main(){
char ch;
int tab;
tab = 1;
tab = 2;
tab = 3;
tab = 4;
tab = 5;
int again = 1;
int i = 0;
while (again){
if(i==5){
i=0;
}
sleep(1);
printf("%d\n",tab);
ch = getch();
switch (ch){
case "a":
printf("按了 A");
break;
case "b":
printf("按了 B");
break;
case "s":
again = 0;
break;
}
i++;
}
return 0;
}
ch应该是字符或者整形
你用双引号表示的是字符串,
好好了解一下单字符和单元素字符串的区别 'a'是字符型;
"a"是字符串; 本帖最后由 superbe 于 2019-9-16 16:58 编辑
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <process.h>
void getInput(PVOID pvoid)
{
char ch;
while(1)
{
ch=getch();
*(char *)pvoid=ch;
if(ch=='s') _endthread();
}
}
int main()
{
char ch=0;
int i = 0;
int again=1;
int tab={1,2,3,4,5};
_beginthread(getInput,0,&ch);
while (again){
printf("%d\n",tab);
switch(ch)
{
case 'a':
printf("按下了 A\n");
break;
case 'b':
printf("按下了 B\n");
break;
case 's':
again=0;
break;
}
ch=0;
if(i==5) i=0;
Sleep(500);
}
return 0;
}
vs2012和dev-c++下测试通过。vc6要设置下才能编译。 本帖最后由 superbe 于 2019-9-16 17:02 编辑
代码刚修改了下,原来有点问题。上面贴子已经修改过了 {:10_269:} bin554385863 发表于 2019-9-16 04:25
ch应该是字符或者整形
你用双引号表示的是字符串,
好好了解一下单字符和单元素字符串的区别
这个我改了 程序每次循环到get这就停止等待我输入字符了 ,有什么办法可以让他自动循环列表里的值,只有我输入字符他才会对应反应呢
页:
[1]