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

stringstream读取逗号分隔整数存入int vector时出现stdout无响应问题

代码问题说明

你的代码存在以下几处核心错误,导致运行无输出:

  • 声明的stringstream对象没有绑定要解析的输入字符串,流为空无法读取任何内容
  • 空vector直接通过下标赋值会触发越界访问,程序直接崩溃,自然不会有标准输出
  • 循环次数错误绑定了字符串的字符长度,和实际要提取的整数数量完全不匹配
  • 每次读取整数后强制读取分隔符的逻辑,在处理最后一个无后置逗号的整数时会直接失败

修正后的完整代码

#include <sstream>
#include <vector>
#include <iostream>
using namespace std;

vector<int> parseInts(string str) {
   stringstream myString(str); // 绑定输入字符串到流
   vector<int> of_integers;
   char ch;
   int a;
   // 以是否成功读取到整数作为循环条件
   while(myString >> a) {
       of_integers.push_back(a); // 用push_back追加元素
       myString >> ch; // 读取逗号分隔符,最后一个整数后无逗号读取失败不影响已存的结果
   }
   return of_integers;
}

int main() {
   string str;
   cin >> str;
   vector<int> integers = parseInts(str);
   for(int i = 0; i < integers.size(); i++) {
       cout << integers[i] << "\n";
   }
   return 0;
}

内容的提问来源于stack exchange,提问作者Rimita Goni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:03