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

C++中如何去除for循环输出结果末尾的多余空格

C++ 循环输出避免末尾多余空格的实现方案

原有代码的问题是统一在每个输出值后面追加空格,10个输出值会对应打印10个空格,最后一个值后面的空格就成了多余内容。核心解决思路是把空格作为两个值之间的分隔符,而非每个值的后缀,下面是两种常用的靠谱实现:

方案一:首元素单独输出,后续元素前补空格

这个方案不需要做循环边界判断,兼容性强,不管是固定次数循环还是遍历动态长度的容器都适用,几乎不会出逻辑错误:

int n;
cin >> n;
cin.ignore();

// 先输出第一个值,前面不需要空格
cout << 1 * n;
// 从第二个值开始,每个值输出前先打印分隔空格
for(int i = 2; i < 11; i++){
    cout << " " << i * n;
}

运行后输出效果和预期完全一致:n取1时输出1 2 3 4 5 6 7 8 9 10,末尾无多余空格。

方案二:循环内判断是否为最后一次迭代

如果不想拆分首元素的输出逻辑,可以在每次输出值后判断当前是不是最后一轮循环,只有非最后一轮才打印空格:

int n;
cin >> n;
cin.ignore();

for(int i = 1; i < 11; i++){
    cout << i * n;
    // 非最后一次循环时才输出分隔空格
    if (i < 10) {
        cout << " ";
    }
}

小提示:如果是遍历长度动态变化的序列(比如标准库容器、输入生成的不定长序列),优先选方案一,不需要额外记录序列总长度,写起来更简洁也不容易出边界bug。

内容的提问来源于stack exchange,提问作者Hiranmay Mandal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:27:18