标题:代码里加了fflush(stdin)就出错,不明白他的用法,求大神指点
只看楼主
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
结帖率:100%
已结贴  问题点数:20 回复次数:4 
代码里加了fflush(stdin)就出错,不明白他的用法,求大神指点
加了fflush(stdin);后原本输入的顶点数对后面的输入的顶点数没影响,例如输入顶点数6,但是要输入12个顶点才能继续下去,求解为神马?下一楼有图
#define MAXVEX 12
typedef struct graph{  
    VertexType vexs[MAXVEX]; //图的顶点  
    EdgeType arcs[MAXVEX][MAXVEX]; //图的边表  
    int vexnum,arcnum; //图的顶点数与边数  
}Graph;  
void CreateGraph(Graph *G) //创建图
{
    int i,j,k,w;
    printf("请输入图的顶点数和边数:\n");
    scanf("%d%d",&G->vexnum,&G->arcnum);
    printf("请输入图的顶点信息:\n");
    for(j = 0;j < G->vexnum;j++)
    {
        fflush(stdin); //清空输入缓冲区,为了确保不影响后面的数据读取
        scanf("%c\n",&G->vexs[j]); //输入顶点的信息
    }

[ 本帖最后由 zggdsgs 于 2015-6-1 22:04 编辑 ]
搜索更多相关主题的帖子: 影响 神马 
2015-06-01 22:02
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
得分:0 
2015-06-01 22:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:20 
fflush()就是把你的连续输入废除

授人以渔,不授人以鱼。
2015-06-01 22:04
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
得分:0 
回复 2楼 zggdsgs
如果把\n去掉呢,还是废掉连续输入么
scanf("%c\n",&G->vexs[j]); //输入顶点的信息
2015-06-01 22:50
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
scanf后面加  \n   这都是哪个师傅教的啊

DO IT YOURSELF !
2015-06-02 08:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446084-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018260 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved