如何使用 Win32 C++ 将斜杠添加到 TCHAR buffer[] 的末尾
How to add slashes to the end of a TCHAR buffer[] using Win32 C++
我正在尝试在我的 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);
但是,您将问题标记为 c++,因此只需使用 std::wstring
即可:
MessageBox(hWnd, (std::wstring(buffer)+L"\").c_str(), L"New Folder Directory", MB_OK | MB_ICONINFORMATION);
我正在尝试在我的 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);
但是,您将问题标记为 c++,因此只需使用 std::wstring
即可:
MessageBox(hWnd, (std::wstring(buffer)+L"\").c_str(), L"New Folder Directory", MB_OK | MB_ICONINFORMATION);