Форум программистов, компьютерный форум CyberForum.ru

Не получается преобразование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Данная матрица: найти количество строк, среднее арифметическое элементов которых меньше заданной величины http://www.cyberforum.ru/cpp-beginners/thread1109269.html
Данная прямоугольная матрица размера m × n. Составить программу, которая находит количество строк, среднее арифметическое элементов которых меньше заданной величины. ОГРОМНОЕ СПАСИБО!
C++ Поменять местами строчки в файле В общем я уже знаю как при помощи fstream открывать файл, извлекать или записывать туда информацию. Однако я не знаю, как переместить указатель на нужные строчки и при помощи дополнительной переменной поменять их местами. Очень прошу помочь, в интернете смотрел ничего путнего не нашел. http://www.cyberforum.ru/cpp-beginners/thread1109261.html
C++ Как зовут тип широкого символа?
Как зовут тип широкого символа?
C++ Длинные целые числа
Подскажите пожалуйста как разработать поле типа : длинные целые числа ?
C++ Что возвращает length? http://www.cyberforum.ru/cpp-beginners/thread1109239.html
Что возвращает s.length(), если std::string s; хранит UTF8? Длину в байтах, или в символах?
C++ Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов и определить, имеются ли столбцы с одинаковой суммой. подробнее

Показать сообщение отдельно
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
02.03.2014, 18:13     Не получается преобразование
tarasproger, почти все правильно, кроме использования capacity, проверки на NULL результата new и отсутствия освобождения памяти.
Вот я подправил, все работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
#include <windows.h>
 
std::wstring Utf8ToWString(std::string const & s)
{
    std::wstring result;
    if(!s.empty())
    {
        int length = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), s.size(), 0, 0);
        wchar_t * out = new wchar_t[length];
        MultiByteToWideChar(CP_UTF8, 0, s.c_str(), s.size(), out, length);
        result.assign(out, length);
        delete [] out;
    }
    return result;
}
 
int main()
{
    setlocale(LC_ALL, "");
 
    std::string s = "привет мир!";
 
    std::wcout << L"[" << Utf8ToWString(s) << L"]\n";
}
Ну и проверку length на ноль неплохо бы еще добавить.
 
Текущее время: 13:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru