C语言 要求输入一个是字母,然后如果输入错误提示重新输入

2025-02-27 06:34:38
推荐回答(2个)
回答1:

#include 
#include 

char get_ch(void)
{

    char get_word;
get_word = getchar();
//int flag = isalpha(get_word = getchar()); //判断是否为字母?
int flag = (get_word == 'a' || get_word == 's' || get_word =='m' ||get_word== 'd'||get_word == 'q');
while(!flag) {

flag = (get_word == 'a' || get_word== 's' || get_word=='m' ||get_word== 'd'||get_word== 'q');
if(flag)
return get_word;
printf("Your input is incorrect, please input:\n");

        printf("a. add \t\t s. substract\n");

        printf("m. multiply\t d. divide\n");

        printf("q. quit\n");

        printf("Please enter your operation of your choice:\n");

getchar(); //消除空格
get_word = getchar();
}
return get_word;
}

int main(int argc, char *argv[])
{
printf("Hello, world\n");

char ch = get_ch();

printf("%c\n",ch);
return 0;
}

回答2:

代码如下:
#include
#include

char get_ch(void)
{

char get_word;
get_word = getchar();
//int flag = isalpha(get_word = getchar()); //判断是否为字母?
int flag = (get_word == 'a' || get_word == 's' || get_word =='m' ||get_word== 'd'||get_word == 'q');
while(!flag) {

flag = (get_word == 'a' || get_word== 's' || get_word=='m' ||get_word== 'd'||get_word== 'q');
if(flag)
return get_word;
printf("Your input is incorrect, please input:\n");

printf("a. add \t\t s. substract\n");

printf("m. multiply\t d. divide\n");

printf("q. quit\n");

printf("Please enter your operation of your choice:\n");

getchar(); //消除空格
get_word = getchar();
}
return get_word;
}

int main(int argc, char *argv[])
{
printf("Hello, world\n");

char ch = get_ch();

printf("%c\n",ch);
return 0;
}