操作系统终端输入大小限制

问题描述

使用c++写算法题时,测试用例是一个长字符串(上万字符), 但运行结果显示字符串读入的长度远远小于输入长度。并且不同操作系统下面显示出了不同的bug:

  • macos: 输入字符串长度只有1000+,超过这个长度成都就会卡在cin那行代码。
  • ubuntu18.04: 程序不报错,读入字符串长度为4095, 超过这个长度的字符都被’\000’替代。
  • windows: 读入字符串长度4094, 并报段错误。

解决

  • 操作系统的终端对单行输入流大小有限制,通常为1kb-4kb,也就解释了上面的bug出现原因。(太坑了有木有,超出限制竟然也没有报错!!!!)
  • 如果需要输入长文本内容,把测试用例写在文本文件中,使用重定向输入:
    ./a.out < input.txt
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值