我正在尝试构建一个命令行应用程序,我正处于开始阶段,并且试图获取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
>>>


我期望发生的是,它可以将输入的内容一行打印出来。

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

最佳答案

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

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

关于c++ - 如何一次打印带有空格的整个wchar_t? (C++),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47025380/

10-13 09:05