首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf为什么不输出?该如何解决

2012-06-05 
printf为什么不输出?C/C++ code#include stdio.h#define N 10int main(int argc, char *argv[]){int i0

printf为什么不输出?

C/C++ code
#include <stdio.h>#define N 10int main(int argc, char *argv[]){    int i=0,p,q,t,id[N];    for (i=0; i < N; ++i)    {        id[i]=i;    }    while(scanf("%d %d\n",&p,&q)==2)    {        if(id[p]==id[q]) continue;        for(t=id[p],i=0;i<N;++i)        {            if (t==id[i])            {                id[i]=id[q];            }        }        printf("%d %d\n",p,q); //在gcc中为什么这条语句不输出任何东西?    }    return 0;}

用vs2008的时候就正常。
还有就是为什么输入两对数值之后,才开始运行while里的语句?

[解决办法]
错误在这: while(scanf("%d %d\n",&p,&q)==2)
scanf不需要在format字符串后面添加上'\n'。这样就会出错。去掉就可以了。主要是因为回车键是作为输入结束的标志,你把回车键作用给费掉了。导致scanf不知道什么时候是结束的。
[解决办法]
你看有没有运行到那里
scanf之后立即检查其返回值,p和q的值
[解决办法]
因为有缓冲,fflush(stdout)
[解决办法]
探讨

因为有缓冲,fflush(stdout)

热点排行