平常,我们用的控制台输入可以一目了然地看到信息,控制台还可以输出大量内容,而 OI 却要求用文件输入。今天,我便用 Windows 7 电脑测试了两者最多能输入几个字符。由于是对比输入的结果,我只改变输入流,而输出全采用文件(因为“属性”里能快速查看文件大小)。在输入、输出无多余换行符时,我得到了如下结果:
输入 220(1048576) 个字符时的单次输出大小(括号外为属性“大小”值,内为“占用空间”值。若无括号表示两者同):
| 使用 io 库 | 控制台输入 | 文件输入 |
|---|
| C++ 库 | 509B(4096B) | 1048576B |
| C 库 | 4094B(4096B) | 1048576B |
| 看到差距如此之大的数据,我对控制台输入的信心大失所望(因为我原本想让它输入 ∞ 个字符的!),却对文件输入有了新的认识。谁能告诉我,为什么文件能将数据“乖乖收下”,控制台却要“偷懒”? | | |