从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());
我从外部 .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());