2015-09-01 23 views

Odpowiedz

11

Działają one na różnych rodzajów znaków:

  • std::cout wykorzystuje char jako typ postaci
  • std::wcout wykorzystuje wchar_t jako typ postaci

przeciwnym razie oba strumienie pisać na standardowe wyjście.

+3

, ale jakie są szerokie znaki w jakikolwiek sposób? –

+4

'char' jest używany dla * wąskich * ciągów, odpowiednich dla 7-bitowego ASCII i 8-bitowego ANSI. 'wchar_t' stosuje się do * szerokich * ciągów, zwanych również ciągami Unicode. Jednak rozmiar 'wchar_t' nie jest przenośny, w niektórych systemach jest 16-bitowy (odpowiedni dla UCS2/UTF-16), w innych jest 32-bitowy (odpowiedni dla UCS4/UTF-32). C++ 11 wprowadziło nowe typy 'char16_t' i' char32_t', aby uporać się z tą nieciągłością. –

3

Inną rzeczą jest to, że oba są używane z respektowanym strumieniem wejściowym.

Przedmioty z nich są inicjowane podczas lub przed pierwszym utworzeniem obiektu std::ios_base::Init.

  • std::cout jest std::basic_ios::tie byłyby do std::cin i std::cerr
  • std:wcout jest std::basic_ios::tie byłyby do std::wcin i std::wcerr
+0

@Galik Zdecydowanie. Dzięki za korektę. Przepraszam za spóźnioną odpowiedź. – oguzhanunlu