输入数字而不使用回车[c]

时间:2016-01-07 15:25:10

标签: c input numbers

如何输入数字而不使用Enter 我可以用Enter:

来做
scanf("%4d",&num);

那么如果不按回车键怎么办呢?

3 个答案:

答案 0 :(得分:1)

为了避免输入enter,您需要使用icanon系统调用(或ioctl命令 - 假设您使用的是Linux)禁用stty模式。您可能希望使用getchar而不是scanf并执行自己的输入处理。这很困难。

你可以看一下这篇文章:

How to avoid press enter with any getchar()

答案 1 :(得分:0)

正如我在上面的评论中所说,以及对@ Rabbid76的回复

  

getch()和putch()是conio.h中定义的非标准函数,   主要用于turbo C / dev C ++ environement。 getchar()是putchar()   是C标准中定义的标准函数,可以使用它们   所有环境。是的,你当然可以在没有这些的情况下编写程序   4个功能   来自谷歌

但如果有人坚持这里是怎么回事(不处理负数和退格)

int inputDgits(int nb){
   int i=0;
   int j=0;
   char tmp;


   for( j=0; j < nb; ){
      tmp=getch();
      if (tmp>='0' && tmp<='9'){
          i *= 10;
          i += tmp-'0';
          j++;
          printf("%c",tmp);
      }else{
         // beep;
      }
   }
   return i;
}

答案 2 :(得分:-1)

谢谢,但我的意思是他的:

int i = 0;
for (i=0;i<4;i++)
{
    getche();
}
相关问题