【发布时间】:2015-12-09 02:48:06
【问题描述】:
- 我使用
scanf("%c",...)来获取用户的输入。 - 我只需要一个字符,例如 '1' 或 'Q'。
- 如果用户输入2,5或1242,
scanf可以得到第一个 特点。其他字符留在缓冲区中。但我不想要几个字符的第一个字符,我只 需要一个字符 - 我不知道如何处理这种情况然后打印错误 消息。
谁能帮帮我?
【问题讨论】:
scanf("%c",...) 来获取用户的输入。 scanf可以得到第一个
特点。其他字符留在缓冲区中。但我不想要几个字符的第一个字符,我只
需要一个字符谁能帮帮我?
【问题讨论】:
#include <stdio.h>
int main(void){
char input;
if(scanf("%c", &input) == 1){
if(input != '1' && input != 'Q' || getchar() != '\n'){
fprintf(stderr, "input error!\n");
while(getchar() != '\n');//clear input
} else {
printf("your input is %c\n", input);
}
}
return 0;
}
【讨论】:
这行得通吗? (扫描字符串而不是字符):
char buf[10];
printf("Enter a single character: ");
scanf("%s", buf);
if ( strlen( buf ) != 1 )
printf("Error");
【讨论】: