我目前正在开发基于Windows的C ++程序。我习惯于工作/编码控制台应用程序,所以我不熟悉我正在尝试做的很多事情的语法。所以我以后可能会有更多的问题。
目前,我想要打印一些文本并在文本中显示变量。 例如,如果我想打印“我是X岁”并且X = 30,那么它的语法将如何形成?
我知道这有效:
DrawText(hDC,L"I am X years old",-1,&rect,DT_CENTER | DT_WORDBREAK );
我想做的是:
DrawText(hDC,L"I am "+ X +" years old",-1,&rect,DT_CENTER | DT_WORDBREAK );
但这不起作用。那么我该如何正确实现呢?
答案 0 :(得分:2)
C ++不是像Javascript等类似的无类型语言,所以你不能通过将各部分组合在一起来构造这样的字符串。相反,你必须使用像swprintf_s这样的函数自己构建字符串。例如,
wchar_t wchBuf[128];
swprintf_s(wchBuf, _countof(wchBuf), L"I am %ld years old", X);
DrawText(hDC, wchBuf, -1, &rect, DT_CENTER | DT_WORDBREAK);
答案 1 :(得分:0)
字符串文字只是指针,你不能将它们一起添加。
但std::string
个对象支持operator+
。
DrawTextA(hDC,("I am " + itostr(X) + " years old").c_str(),-1,&rect,DT_CENTER | DT_WORDBREAK );
(你可以找到itostr
here)
当然,可以使用宽字符和std::wstring
来执行此操作,但对于此示例,坚持使用ASCII是最简单的。
答案 2 :(得分:0)
你不会更好地使用" int"而不是"字符串"看看字符串是如何被男性用来存储文本的? 对于例如 你可以使用: int age = 30;