从文本文件中读取文本,并把它放在静态文本字段,mfc

Reading text from txt file and putting it in static text field, mfc

本文关键字:文本 字段 mfc 静态 文件 读取 取文本      更新时间:2023-10-16

我从外部。txt文件中读取一行文本,当我试图通过SetWindowText将其放入对话框的静态文本字段时:

string line;
ifstream highscore ("highscore.txt");
if (highscore.is_open())
{
    getline(highscore, line);
}
staticText.SetWindowText(_T(line));

我得到以下错误:

错误:标识符" line"未定义。

是否有任何方法从。txt文件中读取字符串并将其放入静态文本字段?

您遇到的问题是宏_T的定义如下:

#if defined(_UNICODE)
#define _T(x) L ##x
#else
#define _T(x) x
#endif

既然_UNICODE被定义了

staticText.SetWindowText(_T(line));

正在被转换为

staticText.SetWindowText(Lline);

给你未声明的标识符。

您可以将std::string转换为TCHAR*,使用vc++中将字符串转换为char的答案之一,或者您可以使用std::wstring来存储行,std::wifstream从文件中读取。如果您这样做,则:

staticText.SetWindowText(_T(line));

将成为

staticText.SetWindowText(line.c_str());