2015-12-09 25 views

回答

0
#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; 
} 
+0

我不想的几个字符的第一个字符,我只需要一个字符...如果输入的是** ** 1,3,它应该打印一条错误消息。 – happyeveryday

+0

@sakurababy这只得到单个字符。如果输入是** 1.388打印错误信息。如果输入是1,3,_scanf可以获得第一个字符。其他字符留在buffer._ – BLUEPIXY

+0

我的意思是如果输入是** 1,3 **,我不希望scanf获得第一个字符,它应该打印一个错误信息并清除缓冲区。@ BLUEPIXY – happyeveryday

0

这是行得通吗? (扫描一个字符串,而不是一个字符):

char buf[10]; 
printf("Enter a single character: "); 
scanf("%s", buf); 
if (strlen(buf) != 1) 
    printf("Error"); 
+0

但我需要这些数字来比较,如果它是一个字符串,它不能被比较.. – happyeveryday

相关问题