【问题标题】:Reading text from txt file and putting it in static text field, mfc从 txt 文件中读取文本并将其放入静态文本字段 mfc
【发布时间】:2015-09-15 12:09:02
【问题描述】:

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

string line;

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

staticText.SetWindowText(_T(line));

我收到以下错误:

错误:标识符“Lline”未定义。

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

【问题讨论】:

  • T 宏用于字符串 och 字符文字,例如T("Foo").
  • 和 wifstream(更臭的版本)。

标签: c++ string mfc


【解决方案1】:

您遇到的问题是宏 _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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多