如何在MFC+中将CString转换为字符串数组+;? 在MFC C++中,我尝试逐行读取文本,并在ListCuff./P>中显示它。
文本文件的格式为: 名称地址Rollno类 因此,文本将包含 约翰英格兰25 4 等等 我想在listcontrol中显示它们 但是,我使用此代码读取文件如何在MFC+中将CString转换为字符串数组+;? 在MFC C++中,我尝试逐行读取文本,并在ListCuff./P>中显示它。,c++,arrays,string,mfc,C++,Arrays,String,Mfc,文本文件的格式为: 名称地址Rollno类 因此,文本将包含 约翰英格兰25 4 等等 我想在listcontrol中显示它们 但是,我使用此代码读取文件 if (myFile.Open(_T("c:\\Users\\blabla\\Desktop\\bla.txt"), CFile::modeRead)) { while (myFile.ReadString(strLine)) { strMsg += strL
if (myFile.Open(_T("c:\\Users\\blabla\\Desktop\\bla.txt"), CFile::modeRead))
{
while (myFile.ReadString(strLine))
{
strMsg += strLine + '\n';
int lengtha = (strLine).GetLength();
//SetDlgItemText(IDC_LIST3, strLine);
char myString[256];
AfxMessageBox(strLine, MB_ICONINFORMATION);
//How do I iterate through strLine?
}
}
else
{
AfxMessageBox(_T("Nope"));
}
在上面,斯特林将印刷“约翰英格兰25 4”
我想把它转换成一个数组,比如[“John”、“England”、“25”、“4”],然后遍历这个数组插入listcontrol
<>我对MFC C++是新手,我似乎不明白该怎么做。如果有人能帮忙,那就太好了
编辑:我看到你可以标记化,所以这就是我到目前为止提出的
void CMFCTask2Try2Dlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
CStdioFile myFile;
CString strLine;
CString strMsg;
if (myFile.Open(_T("c:\\Users\\blabla\\Desktop\\nana.txt"), CFile::modeRead))
{
while (myFile.ReadString(strLine))
{
strMsg += strLine + '\n'
char myString[256];
CAtlString str(strLine);
CAtlString resToken;
int curPos = 0;
resToken = str.Tokenize(_T(" "), curPos);
int i = 0;
int nItem;
while (resToken != _T(""))
{
_tprintf_s(_T("Resulting token: %s\n"), resToken);
AfxMessageBox(resToken, MB_ICONINFORMATION);
nItem = mcontrolz.InsertItem(i, resToken);
resToken = str.Tokenize(_T(" "), curPos);
break;
//Here resToken prints
}
}
}
else
{
AfxMessageBox(_T("Nope"));
}
//myFile.Close();
}
所以如果我的文本文件只有
hey how are you
在这行代码中
AfxMessageBox(resToken, MB_ICONINFORMATION);
messagebox只会给我一个“嘿”字,到目前为止效果很好,但是如果我的文本文件是
hey how are you
hi how are you
这里的resToken AfxMessageBox(resToken,MB_图标信息);在这一行中,会给出两个messagebox警报,一个是hey,一个是hi。不知道为什么会这样。有人能帮我解决这个问题吗?可以用来在任意分隔符处拆分字符串。在您的用例中,您将传递分隔符的
\T(“”)
。可用于在任意分隔符处拆分字符串。在您的用例中,您将传递分隔符的\u T(“”)
。您好,谢谢。我尝试过这种方法,我觉得我离解决方案更近了。我一直在尝试正确解析文本文件中的数据,但我在某些地方遗漏了一些东西。我编辑了这篇文章,如果你能看一看,那太好了break
在第一次迭代时退出封闭的循环。因此,您只解析出第一个令牌。嗨,谢谢。我尝试过这种方法,我觉得我离解决方案更近了。我一直在尝试正确解析文本文件中的数据,但我在某些地方遗漏了一些东西。我编辑了这篇文章,如果你能看一看,那太好了break
在第一次迭代时退出封闭的循环。因此,您只解析出第一个标记。这是否回答了您的问题?这回答了你的问题吗?