用VC中的文件操作实现读取文本数据问题

吾子墨鸿 2007-08-19 02:51:34
求助:我现在不用C或者C++,而只用VC中的文件操作实现读取文本数据,但是读出来却都是零,请教高手该怎么实现!
文本文件的格式如下:
----------------------------------------------
x y z t
41.6318 82.6541 13.9728 10
47.1548 84.4877 17.1848 10.1
46.2162 88.5444 15.5791 10.3
47.1084 91.0505 18.3721 11
52.3068 96.8492 21.4649 12.1
53.9832 100.539 22.9719 12.8
------------------------------------------------------
我要做的就是将里面的数据一行一行的读出来,然后将每行的数据赋给x,y,z,t,然后对这些数据进行运算,我用VC的实现代码如下:
char buff[200];
CString str,str1,str2,str3;
float x=0,y=0,z=0,t=0;

CStdioFile *pFile=new CStdioFile();
pFile->ReadString(buff,200);
while(pFile->ReadString(str))
{
str1=str.Left(str.Find(""));
x=atoi(str1);
}
但是查看x却等于0,不知是哪里有错!请高手给出一个解决方案
...全文
551 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vecshid 2007-08-22
  • 打赏
  • 举报
回复
右上角->管理
吾子墨鸿 2007-08-21
  • 打赏
  • 举报
回复
怎么给分啊?
吾子墨鸿 2007-08-21
  • 打赏
  • 举报
回复
结贴了!vecshid() 的方法是对的,看来Fin("")应该换成Find('')才对啊!
zaodt 2007-08-19
  • 打赏
  • 举报
回复
你的要求不是取出X,Y,Z,T吗?
vecshid 2007-08-19
  • 打赏
  • 举报
回复
试了一下,用以下代码能输出每行的x
//char buff[200];
CString str,str1,str2,str3;
float x=0,y=0,z=0,t=0;

CStdioFile *pFile=new CStdioFile();
pFile->Open("1.txt", CFile::modeRead);
//pFile->ReadString(buff,199);
while(pFile->ReadString(str))
{
str1=str.Left(str.Find(' '));
x=atof(str1);
MessageBox(str1);
}
pFile->Close();
//MessageBox(str1);
zaodt 2007-08-19
  • 打赏
  • 举报
回复
各项之间如果是一个制表符的话,那么应该查找:

0x9

如果不能确定是什么的话,那用二进制方式打开这个文本文件看看即可。
WindAndSnow 2007-08-19
  • 打赏
  • 举报
回复
把str1=str.Left(str.Find(""));改为str1=str.Left(str.Find(' '));//寻找空格,不是空串
zaodt 2007-08-19
  • 打赏
  • 举报
回复
那现在的问题就是分析

str=“41.6318 82.6541 13.9728 10 ”,

各项数据之间是制表符吗?
zaodt 2007-08-19
  • 打赏
  • 举报
回复
怎么没看到你的文件名?

你正确打开文件了吗?

如果正确打开文件,那你正确读出数据了吗?

如果正确读出数据后,利用 atof 即可把字符串转换为浮点数。

调试程序,跟踪查看每一步的变量值,即可找到问题。
吾子墨鸿 2007-08-19
  • 打赏
  • 举报
回复
我改了atof(str1),还是为0.在调试的时候发现str正确读出来了,比如第一行为:
str=“41.6318 82.6541 13.9728 10 ”,
但是在这一:str1=str.Left(str.Find(""));
执行完我看结果str1=“”,就是str1是空的,郁闷!
liuxiuk 2007-08-19
  • 打赏
  • 举报
回复
x=atoi(str1);


----

x=atof(str1);

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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