VC++中关于读取文本文件内容然后通过列表控件逐行输出的问题

我新建了以个MFC的窗口程序,添加了列表控件CListCtrl,设置了列头

比如列头为 用户名、密码

m_List.InsertColumn(0,"用户名",LVCFMT_LEFT,160);
m_List.InsertColumn(1,"密码",LVCFMT_LEFT,200);

然后有一个txt文件用来保存用户名和密码。每行一个
username1 password1
username2 password2
username3 password3
username4 password4
username5 password5
用户名和密码之间用空格隔开

要达到的效果是这样的。
打开窗口后初始化控件及列头信息这些我都做好了,
要做的是读取txt文件,逐行读取,因为是每行一个账号的。

但问题是每行一个账号保存的是用户名和密码,中间使用空格来隔开,
那我该如何判断每行当中哪个是用户名哪个是密码,并把用户名和密码插入到列表控件的相应位置呢?

也就是读取文件后通过while把账号的信息插入到列表控件的相应的列中!

逐行读取的部分我已经搞懂了,关键是把行内的用户名和密码插入到相应的列,因为是空格隔开的!
思路是这样的,但关键是不不知道怎么实现,VC下好像没有PHP当中的explode函数!
我想要的就是实现方法

直接对文件读取也是可以的。 

写了一点代码,供参考: 

a.txt 是你的文件(用来保存用户名和密码) 

代码中输出是为了验证读取的正确性。 

#include<iostream> 

#include<string> 

#include<fstream> 

using namespace std; 

main() 

string username,password; 

ifstream read; 

read.open("a.txt"); 

while(read>>username>>password) 

cout<<username<<" "<<password<<endl; 

read.close(); 

system("PAUSE"); 

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-13
先找到空格的位置比如为iSpaceIndex;
以空格为界线,把整个字符分成两个小字符串

比如这是一行数据:Cont_File
// 获得整个字符串长度和空格位置
int iLen = Cont_File.GetLength();
int iSpaceIndex = Cont_File.Find(' ');
// 获得空格左边字符串(也就是你的用户名)
sName = Cont_File.Letf(iSpaceIndex);
// 获得空格右边的字符串(也就是你的密码)
sPwd = Cont_File.Right(iLen - iSpaceIndex - 1);

这样的话用户名和密码分别取出了本回答被提问者采纳
相似回答
大家正在搜