cstring 读取单词出错

liyingzai 2010-03-22 09:49:16
BOOL CExampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
·········

CStdioFile file;
file.Open("F:\\c++\\example\\list.txt",CFile::modeReadWrite);
CString str="";

int nCol=0;//列号
int iRow=0;//行号

int nst;//记录查找“,”的位置
int npos;//获取第一个“,”的位置
CString s;//记录单词
while(file.ReadString(str))
{
nst=0;
npos=0;
npos=str.Find(",",nst);
while(npos!=-1)
{
s=str.Mid(nst,npos);
if(nCol==0)
{
m_ListCtrl.InsertItem(iRow,s);
}
else
{
m_ListCtrl.SetItemText(iRow,nCol,s);
}
nst=npos+1;
npos=str.Find(",",nst);
nCol=(++nCol)%4;
if(nCol==0)
iRow++;
}
s=str.Mid(nst);
m_ListCtrl.SetItemText(iRow,nCol,s);
nCol=0;
iRow=0;
}
//关闭文件
file.Close();
m_ListCtrl.Invalidate();
return TRUE;
}
list.txt文件内容如下:
sss,ddd,eee,ggg
sss,ddd,eee,ggg
sss,ddd,eee,ggg
sss,ddd,eee,ggg
sss,ddd,eee,ggg
sss,ddd,eee,ggg
得到的结果却是:(无法给图,列表大概如下)
ddd,eee eee,ggg ggg
sss ddd,eee eee,ggg ggg
sss ddd,eee eee,ggg ggg
sss ddd,eee eee,ggg ggg

请问是哪里出问题?????????
高手指点下········
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyingzai 2010-03-23
  • 打赏
  • 举报
回复
太好了,解决了
liyingzai 2010-03-23
  • 打赏
  • 举报
回复
不行啊
Henry8484 2010-03-23
  • 打赏
  • 举报
回复
那我来接分吧。。。。
wade_2003 2010-03-23
  • 打赏
  • 举报
回复
可以结贴了,呵呵
dskit 2010-03-22
  • 打赏
  • 举报
回复
nCol=(++nCol)%4;

肯定这附近的代码有逻辑上的问题,仔细检查

nCol=(nCol++)%4; //试试

64,642

社区成员

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

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