从txt文档读入数据

机器学习之禅 2012-11-12 05:07:09
有一个txt文档,里面的数据如下:
ID=194
x=3277
y=2183
b=3
p=0

ID=195
x=3277
y=2183
b=3
p=0
。。。。。。总共大概有几千组
我定义的数据结构如下
struct PinData//自定义结构体
{
int ID;
int x;
int y;
int b;
int p;
};
PinData pointdata[10000];//数据存储每个点的信息
我应该怎样只读取其中的数字?
把ID对应的数字读入ID
把x对应的数值读入x?
以此类推
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kuovane 2012-11-12
  • 打赏
  • 举报
回复
方法1: 如果可以删掉ID=,x=等这些字符的话 那么去掉ID=,x=,这些信息; 然后变成 194 3277 2183 3 0 195 3277 2183 3 0 然后用fscanf(fp,"%d,%d,%d,%d,%d",pointdata[i].ID,..,pointdata[i].p); 方法2: 读到字符I那么下面就按着规律输入便可,因为都是相同的处理,可以先处理一组数据情况,接着扩展一下便可,比第一种稍微复杂点。
赵4老师 2012-11-12
  • 打赏
  • 举报
回复
请判断fscanf的返回值
机器学习之禅 2012-11-12
  • 打赏
  • 举报
回复
补充一下 //以下是数据存储过程/////////////////////////////////////////////////////// ofstream outfile("1.txt",ios::binary);//打开文件 if(!outfile) { ::MessageBox(NULL,_T("Open Error!"),_T("MessageBox"),MB_OK); } for(int i=0;i<10000;i++) //outfile.write(pointdata[i]);//写数据到文件中 { if(pointdata[i].b<0||pointdata[i].b>7) break; outfile<<"ID="<<pointdata[i].ID<<" "<<endl; outfile<<"x="<<pointdata[i].x<<" "<<endl; outfile<<"y="<<pointdata[i].y<<" "<<endl; outfile<<"b="<<pointdata[i].b<<" "<<endl; outfile<<"p="<<pointdata[i].p<<"\n"<<endl; } outfile.close();//关闭流
azzbcc 2012-11-12
  • 打赏
  • 举报
回复
格式控制额。 fscanf(fp, "ID=%d\nx=%d\ny=%d\nb=%d\np=%d\n", &pointdata[i].ID, &pointdata懒得敲了。。 fgetc();//空行不要忘了
微型蚂蚁 2012-11-12
  • 打赏
  • 举报
回复
如果这个文件是你自己输出的话,干脆就去点什么ID=,x=,直接输出数字,然后fstream<<就行了。 如果格式固定,那就写一个循环 while() { 读取一行 找到‘=’ 将‘=’后面的字符串转换为数字 存储 }

64,649

社区成员

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

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