|
发表于 2011-12-16 00:31:21
|
显示全部楼层
本帖最后由 snake 于 2011-12-16 00:40 编辑
//getchar getchar 由宏实现:#define getchar() getc(stdin)
//getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键
//用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中)
//当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符
//getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕
//如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取
//也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
#include<stdio.h>
int main()
{
char ch;
s1:ch=getchar(); //等待输入字符 从字符串中按输入时间从先到后取一位赋予ch
s2:for(int i=0;i<5;i++) // 字符串抽检次数。抽检5次后转到s10,不够5次,转s4
{
s4: ch=getchar(); //字符串中还有字符,再取一位,没有等待输入
S5: ch=getchar(); //字符串中还有字符,再取一位,没有等待输入
s6: if(ch>'z'||ch<'a') //判断ch是否是小写字母,是小写字母,转到s2
{
s7: printf("Input error! put again\n"); //判断否。执行s7
s8: ch=getchar(); //字符串中还有字符,再取一位,没有等待输入
s9: ch=getchar(); //字符串中还有字符,再取一位,没有等待输入,转道s2
}
}
s10:printf("%c ",ch);
判断字符串,第一次取第3位字符判断,是小写字母,加2取字符判断,不是小写字母,加4取字符判断,共判断5次,最后显示最后一次判断的字符。
}
|
|