【问题标题】:how do i get from a wstring to a WCHAR array[]?我如何从 wstring 到 WCHAR 数组 []?
【发布时间】:2018-12-31 06:48:43
【问题描述】:
// included iostream, windows.h
// This issue has been bugging me for ages!!

int main() {

    std::wstring pls = L"C:\\yesplease.txt";

    static const int SIZE = 100;
    WCHAR path[SIZE];
    std::wcout << "\"" << path << "\"" << std::endl;

    return 0;
}

【问题讨论】:

  • std::wstring::c_str 结合std::wcscpy?在询问之前,您至少浏览过文档吗?
  • IMO 甚至 std::copy() 也应该可以工作 @AlgirdasPreidžius。 @Tato 始终为您正在使用的内容使用显式标头,不要依赖其他标头,包括或正确转发已经声明的内容。
  • @πάνταῥεῖ 在这种情况下我该如何使用副本?我对在第三个参数中放什么感到有点困惑
  • @Tato 把 path 放在那里应该可以正常工作。
  • @Tato 请注意,WCHAR 不是标准声明类型,而是由windows.h 提供的。在上面的示例中,我使用了wchar_t,它是该窗口特定类型定义的标准等效项。

标签: c++ wchar-t wstring


【解决方案1】:

如前所述,您可以使用 std::wcscpy()std::wstring 复制到 wchar_t 数组。

话虽如此,您需要这样做的时间非常少。
通常,+ 运算符以及 .find()substr() 不仅可以满足您需要的任何任务。
如果您需要将序列传递给需要 C 样式字符串的函数,则使用 .c_str()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2021-08-29
    • 2020-08-31
    • 2014-07-03
    • 2013-02-02
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多