【问题标题】:How to output Polish characters in C++ console application? [duplicate]如何在 C++ 控制台应用程序中输出波兰语字符? [复制]
【发布时间】:2013-04-20 14:49:24
【问题描述】:

我尝试了这个简单的代码来使用 'std::wstring' 类输出波兰字符。该类是从 wchar_t 数组成功构造的,但我不知道如何将其输出到屏幕。那行“cout

#include <iostream>
#include <conio.h>
#include <string>

int main(void)
{
    using namespace std ;
    const wchar_t data[] = {'ą', 'ę', 'ć'} ;
    wstring X(data) ;
    cout << X << endl ;
    getch() ;
    return 0 ;
}

【问题讨论】:

    标签: c++ windows io std


    【解决方案1】:

    使用std::wcout 而不是cout

    使用wcout 后,您不应再在程序中使用cout。第一次使用 coutwcout 时,它会在程序运行期间设置标准输出的方向。

    【讨论】:

    • 如果我使用 wcout 那么它说它是未声明的,如果我使用 std::wcout 那么它说 wcout 不是 std 的成员。我使用 Dev-C++ v.4.9.9.2
    • @Salgar 使用std::coutstd::wcout 不应该影响stdout 的方向,stdout 的方向应该与coutwcout 无关:这里的“方向”,是一个限制,因为 C 对宽字符和窄字符输出使用相同的 FILE 对象。 C++ 有两个不同的对象,每个对象都有自己的缓冲区,您应该能够在一个程序中同时使用这两个对象。当然,由于它们都发送到同一个设备,您可能需要插入一些刷新。但是如果你不能同时输出到两者,那么实现就会被破坏。
    • @JamesKanze 谢谢,不知道。
    • @Salgar 请注意,并非所有实现都必须符合要求,有些实现可能与您描述的一样,即使它不符合要求。
    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多