文本文件内容类似为:
MN: 33 44;
WE: 55 66;
AB: 10;
......
我用
CString str1,str2;
CStdioFile file;
file.Open("D:\\aaa.txt",CFile::modeRead);
while(file.ReadString(str2))
{
}
file.Close();
读出每行的值
现在我要对每行的值进行比较
但是比较只比较前面几个字母(比如MN、WE、AB)
不和后面的数字进行比较。
该怎么办呢???是不是用(file.ReadString(str2))不可以?
该用撒呢?
MN: 33 44;
WE: 55 66;
AB: 10;
......
我用
CString str1,str2;
CStdioFile file;
file.Open("D:\\aaa.txt",CFile::modeRead);
while(file.ReadString(str2))
{
}
file.Close();
读出每行的值
现在我要对每行的值进行比较
但是比较只比较前面几个字母(比如MN、WE、AB)
不和后面的数字进行比较。
该怎么办呢???是不是用(file.ReadString(str2))不可以?
该用撒呢?
解决方案 »
- 代码生成的一张黑色位图?//没办法给这张位图添加其他颜色吗???
- webbrowser控件如何 捕获鼠标事件
- 使用MFC2008扩展库建立MFC程序,但是对话框风格不随父窗口改变?
- 继续散分
- 程序中如何动态刷新硬盘分区?
- 请问谁知道《MFC Windows 程序设计(第2版)》哪下载?
- 熟悉微软WebBrowser控件制作浏览器的朋友过来瞧瞧:关于新开窗口的问题...
- 结构体定义问题
- 做信号处理的朋友们,哪里有象 :Effective C++,林锐的《软件工程思想》,《高质量C/C++代码》 这样优秀的共享文档,英文的也行?请推荐一个文档!
- >>高手帮帮我:关于SOCKS5,我已经用UDP ASSOSIATE和代理服务器建立连接,并可以想远端主机发送信息,但就是收不到远端主机发回的UDP信息
- Debug下Link没错,Release就出错(afxPchNil)?
- 我想让Dialog Domodal的时候给它指定位置,请问怎么实现?
然后如楼上的用if(str1.Left(x) == str2)就可以也可以用 if(_tcsncmp(str1, str2, x) == 0)判断
后者效率要高很多
str.left();
str.right();-----
当然前提是每行字母和数字都只用:分开的
还读取不了数字?------left()后
right()就得到了:右边的
不知道源数据里最后是不是有分号.?1.有的再Find()下
2.没有的话,你就可以直接把数据GetAt()到一个数组,不就得到了----
int index;
int num;
int data[100]; //数组要足够大.. 最好用动态的;
CString strLeft;
CString tempStr;index = str.Find( ':' );
if ( index < 0 )
break;strLeft = str.Left( index ); //用于字符串的比较
tempStr = str.Right( str.GetLenth() - index - 1 );
num = tempStr.GetLenth();for ( int i = 0; i < num; i++ )
{
data[i] = temStr.GetAt( i );
}-------仅提供了个方法..
得不到正确的结果
例如:我的是
M03 55 66
我把上面代码的 index = str.Find( ':' );改为index = str.Find(' ');
单步调试显示index=3;num=5;
tempStr和strLeft的值也正确
但是在data[i] = temStr.GetAt( i );时
老是得到data[i]=53这是怎么回事?
是我有个地方搞错了不过得到的是ASCII码值····