用gcc编译之后scanf和printf问题

我先写了一个printf(“XXXXX”);在写了一个scanf(“%d”,&a),运行之后不会打印出printf的内容,只有当我输入一个值之后才打印出printf的内容,请问这是怎么回事?但在vs2015和linux系统下显示就正确,gcc版本为5.3.0。

6个回答

缓冲区的问题,print可能滞留在缓冲区了,语句后加上fflush(stdout)

buhuiyaolian
buhuiyaolian 谢谢啊,纠结了好久,就是这个问题,重来没有遇到过,又get一个新技能。
4 年多之前 回复

可能是缓冲区的问题,你在程序开始的地方写上setbuf(stdout,NULL),或者printf("xxxxxx\n").因为默认是是行缓冲。

贴出你的完整代码才知道。以及你是怎么运行的程序。

是不是有什么地方阻塞了,具体要看你的编译选项等。

这是因为缓冲的问题、你可以在printf(“…/n")或者加一个fflush(stdout)或者调用处理缓冲区的退出exit 0。

不要用stdout,直接用stderr试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问