鱼C论坛

 找回密码
 立即注册
查看: 2131|回复: 6

求大虾解释下,如何运行的

[复制链接]
发表于 2011-12-15 21:51:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
    char ch;
    ch=getchar();
    for(int i=0;i<5;i++)
    {
        ch=getchar();
        ch=getchar();
        if(ch>'z'||ch<'a')
        {
            printf("Input error!  put again\n");
            ch=getchar();
            ch=getchar();
        }
    }
        printf("%c ",ch);

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-15 22:27:39 | 显示全部楼层
单步调试一下,应该可以看明白:o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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次,最后显示最后一次判断的字符。
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-16 16:14:08 | 显示全部楼层
我被抢先啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-16 16:35:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-16 17:49:58 | 显示全部楼层
我搞到凌晨啊。早上8点还要上班。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-17 01:08:14 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    char ch;
    for(int i=0;i<5;i++)
    {
        ch=getchar();
        getchar();
        if(ch>'z'||ch<'a'){
            printf("Input error!  put again\n");
            ch=getchar();
            getchar();}
        else
        putchar(ch);
        
    }
        printf("%c ",ch);
        
        system("pause");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 13:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表