MFC中怎么将文本文件中的按字符串将0读出来然后转换为正确的数字?

fengyiyangliqu 2012-07-01 04:27:05
文本文件内容是1020-1-2,将10,20,-1,-2读四个字节到字符串后用StrToInt转换
char stemp1[5],stemp2[5];
int itemp[2];
myfile.Read(&stemp1,4);
CString str1=(CString)stemp1;
myfile.Read(&stemp2,4);
itemp[0]=StrToInt((CString)stemp1);
itemp[1]=StrToInt((CString)stemp2);
结果10变成了1,20变成了2。
...全文
182 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyiyangliqu 2012-07-02
  • 打赏
  • 举报
回复
我把属性给改成未设置之后可以用atoi函数了
  • 打赏
  • 举报
回复
用atoi试试
fengyiyangliqu 2012-07-01
  • 打赏
  • 举报
回复
我用那个_ttoi函数了,可是不知道为什么中断了
Eleven 2012-07-01
  • 打赏
  • 举报
回复


try
{
CFile file(_T("F:\\11.txt"), CFile::modeRead);
DWORD dwSize = file.GetLength();
char* buf = new char[dwSize + 1];
memset(buf, 0, sizeof(char) * (dwSize + 1));
file.Read(buf, dwSize);
file.Close();
CString strText(buf);
for(int i=0; i<strText.GetLength(); i+=2)
{
CString strTmp = strText.Mid(i, 2);

int nVal = _ttoi(strTmp); //这里就是你需要的数据
}
delete[] buf;
buf = NULL;
}
catch (CException* e)
{
e->ReportError();
e->Delete();
}
一条晚起的虫 2012-07-01
  • 打赏
  • 举报
回复
// 不明白
// 完整代码
fengyiyangliqu 2012-07-01
  • 打赏
  • 举报
回复
是在文件里写了10,20,-1,-2以后再读
一条晚起的虫 2012-07-01
  • 打赏
  • 举报
回复
// stemp1 应该是"2010", stemp2应该是"-1-2"
// itemp[0] == 2010, stemp2应该是 -1 或者 -2
// 代码和lz描述的不符?哪里读出 20, 10, -1, -2 了?
schlafenhamster 2012-07-01
  • 打赏
  • 举报
回复
char str="1020-1-2";

char *p1020=&str;
char *p1=&str[5];
char *p2=&str[7];

atoi(p1020);//=1020
atoi(p1);//=1
atoi(p2);//=2

1,658

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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