从txt文件中读取文本并将其放入静态文本字段,mfc

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

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

string line;

ifstream highscore ("highscore.txt");
if (highscore.is_open())
{
    getline(highscore, line);
}

staticText.SetWindowText(_T(line));

我收到以下错误:

Error: identifier "Lline" is undefined.

有没有办法从 .txt 文件中读取字符串并将其放入静态文本字段?

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

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

所以因为 _UNICODE 被定义了

staticText.SetWindowText(_T(line));

正在转换为

staticText.SetWindowText(Lline);

这是给你未声明的标识符。

您可以使用 Converting string to tchar in VC++ 上的答案之一将 std::string 转换为 TCHAR*,或者您可以使用 std::wstring 来存储行和std::wifstream 从文件中读取。如果你这样做,那么:

staticText.SetWindowText(_T(line));

会变成

staticText.SetWindowText(line.c_str());