【问题标题】:Unexpected behavior C++ standard output意外行为 C++ 标准输出
【发布时间】:2017-08-27 05:34:17
【问题描述】:

https://ideone.com/P4BOmY

#include <cstdio>
int main()
{
    int n,m,k;
    scanf("%d%d%d",&n,&m,&k);
    if(k>n || k>m)
    {
         printf ("0");
         return 0 ;  
    } 
    printf("1");
    return 0;
}

这是怎么回事,为什么 ideone 上的 stdout 为空?

【问题讨论】:

  • 添加 "\n" 似乎可以解决它。 fflush 也是如此,但仅限于第二次和后续运行。 耸耸肩 我想是 ideone 的怪癖。
  • 好吧,这是我的一个小烦恼。 return 0;} 带有大括号的“尼龙包裹”代码读起来很痛苦。缩进不指定 C++ 中的块,方括号可以。所以一定要把它们放在视觉上合适的地方。我的意思是,将它们匹配到范围的开头,而不是某行的结尾。

标签: c++ stdout


【解决方案1】:

这是一个缓冲问题。使用

printf("0\n");

printf("1\n");

解决了这个问题。在https://ideone.com/EUR5Dv 上查看它。

【讨论】:

    猜你喜欢
    • 2020-05-16
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多