mbstowcs и русские буквы

Тема в разделе "LANGS.C", создана пользователем systemio, 20 мар 2009.

  1. systemio

    systemio New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2008
    Сообщения:
    98
    Народ подскажите плиз почему русские буквы не конвертятсяв такой ф-ии

    std::string Convert(const wchar_t* p)
    {
    size_t size = wcslen(p) + 1;
    char* str = new char[size];
    wcstombs(str, p, size);
    std::string retStr(str);
    delete[] str;
    return retStr;
    }
    std::wstring Convert(const char* p)
    {
    size_t size = strlen(p) + 1;
    wchar_t* str = new wchar_t[size];
    mbstowcs(str, p, size);
    std::wstring retStr(str);
    delete[] str;
    return retStr;
    }
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Попробуй _wcstombs_l + локаль.
     
  3. systemio

    systemio New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2008
    Сообщения:
    98
    не подходит - мне нада чтобы ф-ии удовлетворяли POSIX
    Можно пример? с локалью ниразу не работал
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    systemio

    Зачем тебе вообще эти функции нужны? Почему потоки не юзаешь?
     
  5. systemio

    systemio New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2008
    Сообщения:
    98
    ну... если можно разрешить эту проблему другими ф-ми и эти ф-ии удовлетворяют POSIX то подскажи хоть названия
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    хех.. а почему не обработать в цикле всю строку посимвольно?