перед выполнением вашей программы. (Это работало для меня в прошлом.)

сь, простой вопрос:cout кажется, умирает при обработке строк, заканчивающихся многобайтовым символом UTF-8, я делаю что-то не так? Это с GCC (Mingw) на Win7 x64.

** Изменить Извините, если я не был достаточно ясен, меня не беспокоит отсутствующие глифы или то, как интерпретируются байты, просто то, что они вообще не отображаются сразу после вызоваcout << s4 (отсутствует БАР). Дальшеcouts после первого отображения нет текста вообще!

#include <cstdio>
#include <iostream>
#include <string>

int main() {
    std::string s1("abc");
    std::string s2("…");  // … = 0xE2 80 A6
    std::string s3("…abc");
    std::string s4("abc…");

    //In C
    fwrite(s1.c_str(), s1.size(), 1, stdout);
    printf(" FOO ");
    fwrite(s2.c_str(), s2.size(), 1, stdout);
    printf(" BAR ");
    fwrite(s3.c_str(), s3.size(), 1, stdout);
    printf(" FOO ");
    fwrite(s4.c_str(), s4.size(), 1, stdout);
    printf(" BAR\n\n"); 

    //C++
    std::cout << s1 << " FOO " << s2 << " BAR " << s3 << " FOO " << s4 << " BAR ";
}

// results:

// abc FOO ��� BAR ���abc FOO abc… BAR

// abc FOO ��� BAR ���abc FOO abc…

Ответы на вопрос(4)

Ваш ответ на вопрос