鱼C论坛

 找回密码
 立即注册
查看: 2141|回复: 2

请问这里getchar是怎么用的

[复制链接]
发表于 2019-11-15 22:02:26 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void de(char str[],char c);
int main()
{
        int repeat;
        int j,i;
        char str[100],a,c;
        scanf("%d",&repeat);
        for(i=0;i<repeat;i++)
        {
                getchar();//-----------------------------------就是它!
                a=getchar();
                for(j=0;a!='\n';j++)
                {
                        str[j]=a;
                        a=getchar();
                }
                c=getchar();
                str[j]='\0';
                de(str,c);
                getchar();
        }
}

void de(char str[],char c)
{
        int i,j=0;
        char str1[100];
        printf("result: ");
        for(i=0;str[i]!='\0';i++)
        {
                if(str[i]!=c)
                printf("%c",str[i]);
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-15 22:22:23 | 显示全部楼层
知道了,是吸收上面scanf函数最后的回车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-15 22:25:53 | 显示全部楼层
本帖最后由 jackz007 于 2019-11-15 22:27 编辑
        scanf("%d",&repeat);
. . . . . .
                getchar();
                a=getchar();

      每次使用 scanf() 从键盘读取输入以后,键盘缓冲区会有一个回车符 '\n' 滞留,如果这个时候直接使用 getchar() 读取输入,读取到的将是这个滞留的回车符 '\n',而不是我们预期的键盘输入,所以,就需要空置一个 getchar(),把键盘缓冲区当前滞留的回车符读取出来,直接丢弃,然后,再用 getchar() 读取到的,就会是我们所预期的键盘输入。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-12 19:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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