我正在制作一个基于文本的游戏,并且我遇到了很大的输入问题。这是一个小我的问题代码的例子。所以,如果你编译/运行这个,并键入'abc',它将只取每一个,并通过循环发送它。我需要它做的只是第一个字符,有人输入,无论他们输入多少个。输入问题scanf()/ getchar()
而且,PS:我已经尝试过这种方式,它做了同样的事情:
#include <stdio.h>
#include <stdlib.h>
char c[2];
int main(int argc, char *argv[]){
system("clear");
while(1){
printf("\nInput a character.\n");
scanf("%1s", c);
printf("\nYour input: %c\n", c[0]);
sleep(1);
system("clear");
}
return 0;
}
编辑:它也增加了一个空间,你什么都输入,我认为它是一个\ 0,但我不知道。谢谢!
通常,标准输入缓冲,直到用户按下回车键。获取单个字符的方法因操作系统而异。你在使用哪种操作系统? – user3386109 2014-11-01 19:08:03
我使用的是Ubuntu 14.04 LTS – 2014-11-01 19:08:46
这实际上令人沮丧的是,这个标准并没有给出处理这种情况的好方法。在POSIX系统上,你可以使用'getline',它工作得非常好。 – MicroVirus 2014-11-01 19:08:47