buhuiyaolian
buhuiyaolian
2016-04-19 10:45
采纳率: 25%
浏览 2.6k

用gcc编译之后scanf和printf问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • NK_test
    NK_test 2016-04-19 15:55
    已采纳

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

    点赞 评论
  • caozhy

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

    点赞 评论
  • oyljerry
    oyljerry 2016-04-19 10:59

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

    点赞 评论
  • bigmouthba
    bigmouthba 2016-04-19 11:05

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

    点赞 评论
  • qq_18519771
    程序员的那点事 2016-04-25 06:40

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

    点赞 评论
  • codehat
    CedarDiao 2016-05-03 15:17

    不要用stdout,直接用stderr试试

    点赞 评论

相关推荐