[求助]一个字符串流的问题

五号智能 2008-07-01 07:34:55
我想达到这样一个功能,在一个字符串流里把所有的数字都挑出来


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


int main()
{
string sval="alkjd1l2k3jl1k23jl1k23123kl1j23lk12j3l1k23j1l2k3j1l2k3j1l23kj";

istringstream strin(sval);

vector<int> ivec;
int a;

while (in>>a,!eof())
{
//if (...)
// 这里的代码应该是修复流的吧,我不知道,这个流能不能修复
//....
else
ivec.push_back(a); //如果输入成功,就给它压到ivec里面;
}

for (int i=0; i<ivec.size(); ++i)
cout <<vec[i]<<endl;

system("pause");
return 0;
}

...全文
101 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
五号智能 2008-07-01
  • 打赏
  • 举报
回复
哈哈,谢谢,我昨天试了好久没试出来,书上也没细说
K行天下 2008-07-01
  • 打赏
  • 举报
回复
完全可以实现


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


int main()
{
string sval="alkjd1l2k3jl1k23jl1k23123kl1j23lk12j3l1k23j1l2k3j1l2k3j1l23kj";

istringstream strin(sval);

vector<int> ivec;
int a;

while (strin>>a,!strin.eof())
{
if (!strin.good())
{
strin.clear();
strin.ignore();
continue;
}
//这里的代码应该是修复流的吧,我不知道,这个流能不能修复
//....
else
ivec.push_back(a); //如果输入成功,就给它压到ivec里面;
}

for (int i=0; i<ivec.size(); ++i)
cout <<ivec[i]<<endl;

system("pause");
return 0;
}

taodm 2008-07-01
  • 打赏
  • 举报
回复
当然是可以实现的,只是不合算。比for循环+itoa还复杂。
五号智能 2008-07-01
  • 打赏
  • 举报
回复
5555,:(看来这个功能是实现不了了
taodm 2008-07-01
  • 打赏
  • 举报
回复
你还是for循环+itoa吧。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧