在vc++中读写dat文件应该怎么实现?
读取我硬盘某个dat文件,文件假设有下列数据:1.34416@1.34219@1.34597@113.3394@0@0@@12309@111我要在vc++中编程实现读取想...
读取我硬盘某个dat文件,文件假设有下列数据:1.34416@1.34219@1.34597@113.3394@0@0@@12309@111
我要在vc++中编程实现读取想要的某个数,比如上面的1.34219和113.3394,然后两数相加进行运算,得到的结果转变为CString类型,然后再弹出一个提示框显示这个结果,,编程应该怎么实现呢?如果我需要将这个结果写入原来这个文件保存起来又如何实现呢??假如这个文件名为123.dat,希望得到一段代码我直接复制过来就可以用。代码写得好我另行加分哦。谢谢了!!注意哦,我需要的是直接可在vc++中就可使用的代码段,而不是理论讲解哦!!! 展开
我要在vc++中编程实现读取想要的某个数,比如上面的1.34219和113.3394,然后两数相加进行运算,得到的结果转变为CString类型,然后再弹出一个提示框显示这个结果,,编程应该怎么实现呢?如果我需要将这个结果写入原来这个文件保存起来又如何实现呢??假如这个文件名为123.dat,希望得到一段代码我直接复制过来就可以用。代码写得好我另行加分哦。谢谢了!!注意哦,我需要的是直接可在vc++中就可使用的代码段,而不是理论讲解哦!!! 展开
展开全部
#include "stdio.h"
#include "conio.h"
#include <stdlib.h>
#include <Mmc.h>
#include <atlstr.h>
#include <string.h>
void main()
{
FILE * fp=fopen("a.txt","r");
char buf[200];
int maxcount = 200;
fgets(buf, maxcount,fp);
CString cs, cs1;
cs.Format("%s",buf);
MessageBox(NULL,cs,"Read data",0);
float data[10];
int n=0;
int pos1,pos2;
pos2=0;
for(;;){
pos1=pos2+1;
for(int i=pos1; i<cs.StringLength(cs);i++)
{
if(cs[i]=='@'){ pos2=i;break;}
}
if(pos2>pos1){
data[n]=atof(cs.Mid(pos1,pos2));
n++;
}
else
break;
}
float aa;
aa=data[0]+data[2];
/拦嫌氏/ cs1.Format("pos=%d %d %f + %f = %f",pos1,n,data[0],data[1],aa);
MessageBox(NULL,cs1,"Read data"者尘,0);
}
直接复制,可以运行。简散
把1.34416@1.34219@1.34597@113.3394@0@0@@12309@111
存入文件“a.txt”
#include "conio.h"
#include <stdlib.h>
#include <Mmc.h>
#include <atlstr.h>
#include <string.h>
void main()
{
FILE * fp=fopen("a.txt","r");
char buf[200];
int maxcount = 200;
fgets(buf, maxcount,fp);
CString cs, cs1;
cs.Format("%s",buf);
MessageBox(NULL,cs,"Read data",0);
float data[10];
int n=0;
int pos1,pos2;
pos2=0;
for(;;){
pos1=pos2+1;
for(int i=pos1; i<cs.StringLength(cs);i++)
{
if(cs[i]=='@'){ pos2=i;break;}
}
if(pos2>pos1){
data[n]=atof(cs.Mid(pos1,pos2));
n++;
}
else
break;
}
float aa;
aa=data[0]+data[2];
/拦嫌氏/ cs1.Format("pos=%d %d %f + %f = %f",pos1,n,data[0],data[1],aa);
MessageBox(NULL,cs1,"Read data"者尘,0);
}
直接复制,可以运行。简散
把1.34416@1.34219@1.34597@113.3394@0@0@@12309@111
存入文件“a.txt”
更多追问追答
追问
感谢你的帮助!我是在vc++下建立的一个基于MFC对话框的工程,我需要在一个button控件下执行一个点击OnButton的动作产生上面的结果,可能还得修改下代码才能应用到我希望应用的地方去哦。
追答
你的题目里面并没有说明基于MFC的对话框?以及一个button控制?
展开全部
首先,DAT文件有几类手信:
1、大多数情况下,.dat文件是程序使用的数据,它只是开发者为了清楚文件的意思而自己定义的,也可以命名成别的扩展名!
2、你可以用任何编辑工具新建文件,将其命名为.dat。所以,.dat文卖梁件的打开工具也不一样,比如,有些其实是文本文件,只是将扩展名改写成.dat,就可以用文本编辑工具打开;3、最常见的dat文件还有VCD影音文件,这种文件可以用解霸,暴风影音,毕配轮Windows meadia player之类的播放软件打开(这个情况们碰到比较常见)。
我们在vs中讨论的不是第三种,所以,对于前两种,直接采用STL中的fopen函数即可。只是后缀加上文件类型,有时候文件其实就是txt的。你打开之后直接用getline()函数取读即可。
1、大多数情况下,.dat文件是程序使用的数据,它只是开发者为了清楚文件的意思而自己定义的,也可以命名成别的扩展名!
2、你可以用任何编辑工具新建文件,将其命名为.dat。所以,.dat文卖梁件的打开工具也不一样,比如,有些其实是文本文件,只是将扩展名改写成.dat,就可以用文本编辑工具打开;3、最常见的dat文件还有VCD影音文件,这种文件可以用解霸,暴风影音,毕配轮Windows meadia player之类的播放软件打开(这个情况们碰到比较常见)。
我们在vs中讨论的不是第三种,所以,对于前两种,直接采用STL中的fopen函数即可。只是后缀加上文件类型,有时候文件其实就是txt的。你打开之后直接用getline()函数取读即可。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如控制一次从.dat文件握伍每次读取4位二进制数,然后将其转化为16进制仿戚输出在1.如果你是用VC的. CFileDialog filedlg(TRUE);//设置备皮陵为TRUE读文件
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读文件都是一样的方法,dat文件需要先了解他的文件格式这才能从文件读取数据流后解析成有意义的东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询