vc++ 中如何截取字符串 有关Left 和Right

echo1004 2008-04-10 06:20:16
我要读取一个文件中的数据,文件数据示范如下:
20070108 110.26 20.54 72.0
20070110 112.23 22.94 -18.4
20070112 110.05 21.01 23.9
20070112 112.53 23.02 11.8
每次读取一行,里面是四个数据,我想把它们分别存入四个CString变量中,然后在转换成数字,从而能进行一定的计算,我写的试验代码如下:
CString line="20070116 110.55 21.21 -15.3 ";
int pos1 = line.Find(' ');
CString st = line.Left(pos1);
CString s2 = line.Right(pos11);

int pos2 = s2.Find(' ');
CString slon = s2.Left(pos2);
CString s3 = s2.Right(pos22);

int pos3 = s3.Find(' ');
CString slat = s3.Left(pos3);
CString sdian = s3.Right(pos33);

MessageBox(st);
MessageBox(slon);
MessageBox(slat);
MessageBox(sdian);

但是这样怎么也得不出结果,有没有高人帮我分析一下啊?
或者不用上面的代码了,只要能把字符串分成四个CString就可以阿。
...全文
653 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
echo1004 2008-04-11
  • 打赏
  • 举报
回复
谢谢大家,我的问题已经解决啦,
读取的文件比较大,大家的建议我都试过啦,又学到了很多东西,谢谢大家,
我最后用了c里面的freopen+scanf,希望以后还能得到大家的指教
Supper_Jerry 2008-04-11
  • 打赏
  • 举报
回复
Ns类型估计错了
echo1004 2008-04-11
  • 打赏
  • 举报
回复
谢谢你的建议,但是我再写自己的代码的时候出现了一些错误,代码如下:
#include <fstream>
#include <iostream>
....
ifstream hebing("合并后的文件部分.TXT");
hebing>>Ns;
CString str;
str.Format("%ld", Ns);
AfxMessageBox(str);
错误如下:
F:\work\1\VcLeiDian18\VcLeiDian4Dlg.cpp(263) : error C2079: 'hebing' uses undefined class 'basic_ofstream<char,struct std::char_traits<char> >'
F:\work\1\VcLeiDian18\VcLeiDian4Dlg.cpp(263) : error C2440: 'initializing' : cannot convert from 'char [21]' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\work\1\VcLeiDian18\VcLeiDian4Dlg.cpp(264) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
不知道是什么原因,能不能分析一下啊?
lzj290438714 2008-04-10
  • 打赏
  • 举报
回复
你可以这么CString line="20070116 110.55 21.21 -15.3 ";
int pos1 = line.Find(' ');
CString st = line.Left(pos1);
CString s2 = line.Right(line.GetLength()-pos1-1);
后面类推。
  • 打赏
  • 举报
回复
......用fstream很方便
ifstream ifs("file");
int a;
double b,c,d;
while(ifs>>a>>b>>c>>d){
abcd就是你所需要分割的数字,直接分割好了

}

64,646

社区成员

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

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