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多个元素,不可能设置太多的临时变量用来挨个存储所有数据的 展开
如何处理
关键是数据特别长,大约每行200多个元素,不可能设置太多的临时变量用来挨个存储所有数据的 展开
3个回答
展开全部
给你个参考吧冲键:
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 );
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位。
展开全部
stdio.h中的格式化函数 sscanf
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用C++ sstream,例子:
#include <sstream>孙卜祥
void main()
{
double d = 0.0;
string str = "弊郑123.00025";
std::istringstream iss;
iss.str( str );
iss >>则搏 d;
return;
}
#include <sstream>孙卜祥
void main()
{
double d = 0.0;
string str = "弊郑123.00025";
std::istringstream iss;
iss.str( str );
iss >>则搏 d;
return;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询