如何使用 Win32 C++ 在 TCHAR 缓冲区 [] 的末尾添加斜杠

问题描述

我正在尝试在我的 Win32 C++ 应用程序中使用 wsprintf() 在 TCHAR 缓冲区 [] 的末尾添加两个斜杠“\”。 变量“buffer”保存文件路径:C:\Users\nayub\Desktop\Folder1\Hello。我想在此文件路径的末尾添加两个斜杠,因此执行以下代码

wsprintf(filename_buff,buffer,L"\\");
MessageBox(hWnd,filename_buff,L"New Folder Directory",MB_OK | MB_ICONinformatION);

但是,消息框显示“C”而没有其他内容。我不确定为什么它会得到“C”而不是文件路径,因为在添加斜杠之前,文件路径会正确打印出来。

解决方法

您错误地使用了 wsprintf()。它需要看起来更像这样:

wsprintf(filename_buff,L“%s\\”,buffer);

或者,您可以使用 PathAddBackslash() 代替:

wcscpy(filename_buff,buffer);
PathAddBackslash(filename_buff);

但是,您将问题标记为 ,因此只需使用 std::wstring

MessageBox(hWnd,(std::wstring(buffer)+L"\\").c_str(),L"New Folder Directory",MB_OK | MB_ICONINFORMATION);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...