#适用于 数字 选项
#include<stdio.h>
int main(){
while(1){
int choice=-1; //关键
printf("enter:\n");
scanf("%d",&choice);
while(getchar()!='\n');//循环将缓存中的其他字符取走
switch(choice){
case 1:printf("ii\n");break;
default:printf("nonono\n");break;
}
}
}
#适用于 个位数字或单个字符 选项
#include<stdio.h>
int main(){
while(1){
fflush(stdin);//清空缓存区,去除回车符
printf("enter:\n");
switch(getchar()){
case '1':printf("11\n");break;
case 'a':printf("aa\n");break;
default:printf("nonono\n");break;
}
}
}
#include<stdio.h>
#include<conio.h>
int main(){
while(1){
printf("enter:\n");
switch(getche()){
case '1':printf("ii\n");break;
default:printf("nonono\n");break;
}
}
}
scanf读取流程:
1.检查缓冲区是否有数据
有->直接从缓存区中读取,不等待用户输入
没有->用户输入,先保存到缓存区,按下回车后从缓存区中读取数据
scanf返回成功读入的项数(返回类型为int)
情况:都成功item=2,只有number1成功item=1,都不成功item=0;遇到错误或文件末尾(ctrl+^Z或Ctrl+^D)为EOF
输入(括号为对应关系):(ok2) (p2) (1p)
item输出: (0) (0) (1)