Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?

Posted

技术标签:

【中文标题】Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?【英文标题】:Visual Studio 2019 MFC App: How do I read from a text file and display the strings in different fields/Edit Controls? 【发布时间】:2020-10-10 04:13:56 【问题描述】:

假设我有一个包含三行的“user.txt”文件:

35
160
green

在 Visual Studio 2019 mfc 应用项目中,我有三个字段:

txtUserAge
txtUserWeight
txtUserFavoriteColor

如何从 User.txt 文件中读取每一行以填充相应的编辑控件?

到目前为止,我所做的是相反的,用于保存到文件:

    右键编辑控件,添加变量 例如,将txtUserAge 设置为名为@9​​87654324@ 的C 字符串类型变量的值类别 在我的主 .cpp 中,单击 Save 按钮,有一个 CString newAge = userAgeVar; 然后将CString转换为字符串CT2CA ct (newAge); string strNewAge(ct); 然后发给班级
StatSaver user1;
user1.recordStats(strNewAge);
    类的位置:
void StatSaver::recordStats(string ageString)

  ofstream outFile;
  outFile << ageString << "\n";
  outFile.close();

我似乎无法反过来考虑读取相同的文本文件并填写字段/编辑控件。任何人都可以提供任何帮助,我将不胜感激。

【问题讨论】:

您可能想查看 CArchive 类。 MFC 将让您创建一个 CFIle 对象,您可以从中创建一个 CArchive 对象,该对象功能丰富,并且应该具有您在读取和写入文件方面所寻找的内容。 【参考方案1】:

好吧,这比我想象的要简单得多。我将它链接到一个按钮,

void CMFCReadTextToBoxDlg::OnBnClickedbtnread()

    ifstream MyReadFile("user.txt");
    string textRead1;
    string textRead2;
    string textRead3;
    string textRead4;

    getline(MyReadFile, textRead1);
    CString cs1(textRead1.c_str());
    SetDlgItemText(txtField1, cs1);

    getline(MyReadFile, textRead2);
    CString cs2(textRead2.c_str());
    SetDlgItemText(txtField2, cs2);

    getline(MyReadFile, textRead3);
    CString cs3(textRead3.c_str());
    SetDlgItemText(txtField3, cs3);

    getline(MyReadFile, textRead4);
    CString cs4(textRead4.c_str());
    SetDlgItemText(txtField4, cs4);
    
    
    MyReadFile.close();
    

【讨论】:

以上是关于Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019报错:缺少mfc120.dll

用Microsoft Visual Studio 2019写MFC程序(Bresenham画直线为例)

在 Visual Studio 中编写 MFC/STL 程序需要做啥?

Visual Studio MFC 在键入/动态时更改编辑控件中的文本

使用 Visual Studio 2008 编译和运行 MFC 应用程序?

如何在Visual Studio 2015中创建MFC窗体应用