c++中从string流中获取某些特定数据

c++中从string流中获取某些数据例如buff中的内容为“beginatmark10.020.0atend”类似格式的需要从中读取mark后面的10.020.0两个d... c++中从string流中获取某些数据 例如 buff中的内容为 “begin at mark 10.0 20.0 at end” 类似格式的 需要从中读取mark 后面的 10.0 20.0 两个double 类型数据 到x,y
如何处理
关键是数据特别长,大约每行200多个元素,不可能设置太多的临时变量用来挨个存储所有数据的
展开
 我来答
kaixingui2012
2011-10-18 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6376万
展开全部
给你个参考吧冲键:
char *buf="begin at mark 10.0 20.0 at end" ; //数据流格式必须与scanf格式一致扮信,
char temp[128]; //临时变量,为了滤厅判轮掉前面的字符串word
double x,y;
sscanf( buf , "%s %s %s %lf %lf" , temp,temp,temp,&x,&y );
追问
关键是数据格式特别长,大约每行200多个元素,一万多行。每行读取之后不可能设置太多的临时变量用来挨个存储所有数据的。请问有没有别的方法?
追答
你的数据位置如果不确定就无法实现!
如果数据位置能确定就可以!
如:一行200多个元素,x , y 在第10,和第12位,数据间以空格分格,可以写一个函数来跳过相应的无效数据,直接去读取第10 和第12位。
ghlegend
2011-10-19
知道答主
回答量:43
采纳率:0%
帮助的人:22.5万
展开全部
stdio.h中的格式化函数 sscanf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9df37c8
2011-10-18 · TA获得超过215个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:222万
展开全部
用C++ sstream,例子:
#include <sstream>孙卜祥

void main()
{
double d = 0.0;
string str = "弊郑123.00025";
std::istringstream iss;
iss.str( str );
iss >>则搏 d;
return;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式