weixin_47586812 2021-09-16 11:31 采纳率: 0%
浏览 154

C语言getchar和scanf接收回车的问题


#include <stdio.h>

void test(char *Vertex)
{
    int i;
    printf("输入各顶点信息\n");
    for(i=0;i<5;i++)            //输入顶点 
    {
        getchar();
        printf("第%d个顶点:",i+1); 
        scanf("%c",&Vertex[i]);
    }
}

int main() 
{
    char Vertex[5];
    int GraphType,VertexNum,EdgeNum;
    printf("输入生成图的类型(0:无向图,1:有向图):"); 
    scanf("%d",&GraphType);                    //输入图的种类 
    printf("输入图的顶点数量和边数量:");
    scanf("%d,%d",&VertexNum,&EdgeNum);        //输入图的顶点数量和边数量 
    test(Vertex);
    return 0;
}

img

img

我输入了2次数据,产生了两个回车,进入第一次循环后getchar()接收一个回车,scanf为什么没有接收另一个回车,而是等待我输入第一个顶点?

当我把getchar()删除后,进入第一次循环后scanf应该是读取了一个回车,那么第二次循环为什么scanf没有接收另一个回车,而是等待我输入第二个顶点?

  • 写回答

3条回答 默认 最新

  • 关注
    
    for(i=0;i<5;i++)            //输入顶点 
        {
            getchar();
            printf("第%d个顶点:",i+1); 
            //加一条语句
            fflush(stdin);
            scanf("%c",&Vertex[i]);
        }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月16日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号