BenChuat 2023-10-27 19:21 采纳率: 70.4%
浏览 5

OJ平台while循环输入终止不了

img


想while循环输入,想的是当n收到0是就break跳出,但就是不会跳出,还是说scanner一直在等待输入阻塞线程?到底怎么解决呀,提交oj平台答案是没错的,但就是程序不会终止,导致超时timeout。

img


debug发现为什么他根本没把最后一个0扫进去呀

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-28 04:30
    关注

    【以下回答由 GPT 生成】

    这个问题的根本原因是输入流一直在等待输入,导致程序无法终止。为了解决这个问题,你可以使用以下方法之一:

    1. 使用cin.eof()函数来判断输入是否结束。这个函数会在输入流结束时返回true,可以用于判断是否跳出循环。具体代码如下:
    int n;
    while (cin >> n && n != 0) {
        // 循环体
    }
    
    1. 修改输入流的状态,使其不再等待输入。你可以使用cin.tie(nullptr)来取消输入流和输出流之间的绑定,这样输入流就不会等待输出流了。具体代码如下:
    int n;
    cin.tie(nullptr);  // 取消输入流和输出流之间的绑定
    while (cin >> n && n != 0) {
        // 循环体
    }
    

    这两种方法都可以解决你的问题,你可以根据自己的需求选择其中之一来解决。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?