我想知道如何使用字符串作为新参数在C++中更改控制台标题。
我知道你可以使用Win32 API的SetConsoleTitle
函数,但是不需要字符串参数。
我需要这个,因为我正在用控制台效果和命令做一个Java本地接口项目。
我正在使用Windows,它只需要与Windows兼容。使用字符串在C++中设置控制台标题
0
A
回答
7
的SetConsoleTitle
功能确实确实有一个字符串参数。只是字符串种类取决于使用或UNICODE或不。
你必须使用例如在_T
宏来确保文字字符串是正确的格式(宽字符或单字节)的:
SetConsoleTitle(_T("Some title"));
如果使用例如std::string
事情会变得更复杂一些,因为根据_UNICODE
宏,您可能必须在std::string
和std::wstring
之间进行转换。
如果未定义_UNICODE
,或者只有定义了std::wstring
,则无需执行该转换的一种方法是始终仅使用std::string
。这可以通过在"stdafx.h"
头文件中添加typedef
来完成:
#ifdef _UNICODE
typedef string std::wstring
#else
typedef string std::string
#endif
如果你的问题是,SetConsoleTitle
并不需要std::string
(或std::wstring
),这是因为它有可能是其没有按” C程序兼容没有字符串类(或类)。在这种情况下,你使用string类的c_str
得到一个字符串指针,以与需要老式的C字符串函数中使用:
string title = _T("Some title");
SetConsoleTitle(title.c_str());
+1
请注意,如果你有不正确的字符大小,你不需要显式地转换字符串,你可以明确地调用适当的版本功能。在这种情况下,您可以调用SetConsoleTitleA(用于ANSI字符串)或SetConsoleTitleW(用于Unicode字符串)。 –
2
相关问题
- 1. 设置控制器标题字符串“设置”不起作用
- 2. 使用Unicode字符的C#控制台字符串填充
- 3. 设置R控制台的标题
- 4. c#控制台后字符串writeline
- 5. 在Objective-C控制台应用程序中读取字符串?
- 6. 使用资源字符串在MainWindow.xaml中设置标题
- 7. 什么是C++中的WinXP控制台光标控制字符?
- 8. 如何在控制台应用程序中设置默认连接字符串?
- 9. C#控制台图书馆的app.config连接字符串问题
- 10. c#使用控制台将字符串拆分为列
- 11. 问题与设置字符串C#
- 12. Unicode字符在控制台通过C++
- 13. 使用字符串设置控件属性C#
- 14. 在控制台中对字符串使用分隔符,然后将其设置为变量
- 15. 使用控制台字符清除多个控制台行
- 16. 使用新字符串在linux/windows控制台输入命令
- 17. 控制台应用程序输入参数 - 字符串标识
- 18. cout字符串期间在控制台上闪烁光标
- 19. C#Powershell设置控制台文件
- 20. C#控制台应用程序解码url编码字符串
- 21. Objective C - 如何比较控制台中的字符串
- 22. d3 - 控制台中的csv文件标题行,如果字符串类型
- 23. 控制台中使用printf的C++ unicode字符?
- 24. 如何在C++的特定坐标处将字符串打印到控制台?
- 25. 置字符串使用C
- 26. 从控制台读取字符串
- 27. 控制台输出到字符串
- 28. 在控制台应用程序中声明连接字符串
- 29. 在控制台应用程序中定义连接字符串
- 30. 在控制台应用程序中获取连接字符串
'SetConsoleTitle'确实先接受一个字符串 – nico
谷歌你的问题,这是很容易找到... –