2017-10-30 14 views
0

명령 줄 응용 프로그램을 만들려고합니다. 처음에 wchar_t 입력을 가져 와서 인쇄하려고합니다. 그러나 "foo foof"를 입력하면 foo>>> foof>>>이 인쇄됩니다. . 여기 내 코드입니다 :공백을 포함하여 전체 wchar_t를 한꺼번에 어떻게 인쇄합니까? (C++)

#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++을 처음 사용하기 때문에 답변이 명확한 경우 미안합니다.

+0

'wchar_t'는 문자열이 아닌 문자입니다. 'wstring'은 어떨까요? – DimChtz

+0

확실한'wchar_t'에 대해서? – Alfabravo

+0

'wchar_t afterprint [100]; '을 시도하십시오. –

답변

1

나는 한번의 문제에서 1 개의 문자를 얻는 것으로부터 한 번에 한 개의 단어를 얻는 것으로 진화하는 것을 보았다. fgetws을 사용하여 전체 입력을 캡처 할 수 있습니다.

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

Thx! 나는 그것을 시도 할 것이다. –