1

C++/MFC中结构体使用CString出现问题

我定义了如下结构体:

 struct u
    {

        CString  sNumber;
        CString sPass;
        int PRIOR;
    };

我在OnDestroy()函数中去将结构体中的三个变量写入到user.dat文件中,但是当我
再次读取文件中数据时,只有int类型的PRIOR有数据,CString类型拿不到数据。打断点的结果是,写入数据时,数据是成功写入的。

 CFile file;//创建一个CFile文件
    if (!file.Open(_T("./user.dat"),CFile::modeCreate|CFile::modeWrite))//判断是否有文件,return是必须有的
    {
        AfxMessageBox(_T("保存文件失败"));
        return;
    }
    CListCtrl *plist = (CListCtrl *)GetDlgItem(IDC_LIST);
    int i = 0,nCount = plist->GetItemCount();
    u user;
    // (int i = 0; i < nCount; i++)
    while (i<nCount)
    {
        user.sNumber = plist->GetItemText(i, 0);
        user.sPass = plist->GetItemText(i, 1);

        file.Write(&user, sizeof(user));//写入一个结构体
        ++i;

    }


    file.Close();
    user.PRIOR = plist->GetItemText(i, 2) == _T("高级");

我知道可以用char,但是更想使用CString类型。

查看全部
u013068862
黄晓智
2016/06/29 09:22
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

3个回复