0

I am trying to build a command line application, i'm at the start, and I am trying to get an wchar_t input and print it, but if I type in "foo foof" for example, it prints foo>>> foof>>>. Here is my code:

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

    }
    return 0;
}

And this is what happens in the console:

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

What I am expecting to happen, is for it to print what was entered, on one line.

Help would be highly appreciated, and I am sorry if the answer is really obvious, because I am new to C++.

Anonymous
  • 355
  • 2
  • 14

1 Answers1

1

I see the question is evolved from getting 1 char at a time problem to getting 1 word at a time problem. You can use fgetws to capture the whole input:

while (1)
{
    wchar_t afterprint[100];
    std::wcout << "\n>>> ";
    fgetws(afterprint, 100, stdin);
    std::wcout << afterprint;
} 
Killzone Kid
  • 6,171
  • 3
  • 17
  • 37