You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用getline()函数实现多行整数输入?

解决多行整数输入的问题(无需getline)

嘿,其实你完全不需要额外定义那个char c来处理换行哦!

核心原因:cin >>自动跳过空白字符

当你使用cin >>读取整数(或者其他基本数据类型,比如float、string)时,它会自动忽略所有空白字符——包括换行符、空格、制表符这些。不管你的输入分多少行,只要整数是按顺序输入的,cin都能正确识别并读取。

比如你的输入是:

3 4
5 6

或者甚至是:

3
4
5
6

或者混合空格和换行的任意组合,直接用下面的代码就能正确读取四个整数:

int a1, b1, a2, b2;
cin >> a1 >> b1 >> a2 >> b2;

你原来写法的问题

你之前加的cin >> c反而会导致程序异常:如果两行之间只有换行(没有其他非空白字符),cin >> c会一直等待输入一个非空白字符,因为它会跳过换行,直到找到可以读取的字符,这就会让程序卡住,没法继续读取后面的a2和b2。

特殊情况处理(如果有非空白分隔符)

如果你的输入里有其他非空白的分隔符(比如逗号、分号),那才需要额外读取这些分隔符。比如输入是3,4\n5,6,那你可以这样写:

int a1, b1, a2, b2;
char comma;
cin >> a1 >> comma >> b1;
cin >> a2 >> comma >> b2;

但如果只是换行和空格作为分隔,完全不需要额外处理。

内容的提问来源于stack exchange,提问作者Saumya Chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:47:43