【问题标题】:How do you print a whole wchar_t with spaces at once? (c++)如何一次打印带有空格的整个 wchar_t? (c++)
【发布时间】:2017-10-30 22:49:00
【问题描述】:

我正在尝试构建一个命令行应用程序,我刚开始,我正在尝试获取 wchar_t 输入并打印它,但是如果我输入例如“foo foof”,它会打印foo>>> foof>>> . 这是我的代码:

#include <iostream>
using namespace std;
int main()
{
    while (1 == 1)
    {
        wchar_t afterprint[100];
        wcout << "\n>>> ";
        wcin >> afterprint;
        wcout << afterprint;

    }
    return 0;
}

这就是控制台中发生的事情:

>>> foo foof fofof
foo
>>> foof
>>> fofof
>>>

我期望发生的事情是让它在 one 行上打印输入的内容。

非常感谢您的帮助,如果答案真的很明显,我很抱歉,因为我是 C++ 新手。

【问题讨论】:

  • wchar_t 是一个字符,而不是一个字符串。 wstring呢?
  • 确定wchar_t
  • 试试wchar_t afterprint[100];
  • 这段代码的输出对我来说是正确的;你期待什么?为什么?
  • 如果您是 C++ 新手,那么您可能应该忘记 wchar_t 并专注于其中一个 C++ books

标签: c++ console wchar-t


【解决方案1】:

我看到问题已经从一次获取 1 个字符的问题演变为一次获取​​ 1 个单词的问题。您可以使用fgetws 捕获整个输入:

while (1)
{
    wchar_t afterprint[100];
    std::wcout << "\n>>> ";
    fgetws(afterprint, 100, stdin);
    std::wcout << afterprint;
} 

【讨论】:

  • 谢谢!我会试试的
猜你喜欢
  • 1970-01-01
  • 2020-01-24
  • 2011-05-28
  • 1970-01-01
  • 2015-02-11
  • 2021-12-21
  • 2012-09-09
  • 1970-01-01
  • 2022-01-18
相关资源
最近更新 更多