在c中仅使用getch()作为输入数字和字母

时间:2018-06-12 19:01:39

标签: c

我想要完成的是使用功能getch同时进行的研究。我知道这个函数返回一个整数值,表示一个键的ASCII码。是否有任何wroten功能允许用户只写某些字符,如:字母,数字和撇号。

2 个答案:

答案 0 :(得分:1)

char c;
int temp = 0;
while((c= getch()) !='\r')
{
    if ((temp == -32) || (temp == 0))
    {
    }
    else
    {
        if(isalnum((char)c) == 0)
        {
            if((c == '\'') || (c == -118) || (c == -115) || (c == -107) || (c == -123) || (c == -105))
            {
                printf("true: %c\n",c);
            }
            else
                printf("false: %d\n",c);
        }
        else
        {
            printf("true: %c\n",c);
        }
    }
    temp = c;
}

对于那些试图取得同样结果的人来说,这对我来说很好。

答案 1 :(得分:0)

  

是否有任何写入功能允许用户只写某些字符,例如:字母,数字和撇号。 (?)

代码可以选择写入

#include <ctype.h>
#include <stdio.h>

int c; // use type `int` here to distinguish all (256) characters from EOF
while((c = getch()) != '\r' && c != '\n'  && c != EOF) {
  if (isalnum(c) || '\'') {
    putchar(c);
  }
}