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

Перевод из string в wstring. Неправильная кодировка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм Дейкстры http://www.cyberforum.ru/cpp-beginners/thread1062900.html
Что-то у меня Дейкстра не работает... прошу помощи у вас... Сам уже часа 1.5 сижу и не могу найти ошибку...#include <iostream> #include <cstring> #include <cmath> #include <stack> #include <queue> using namespace std; int n,m,a,s,f,p,h; bool used; int res;
C++ Шифрование методом цезаря Здравствуйте, прошу вас о помощи. Это может показаться наглым, но, мне срочно нужна помощь с курсовым проектом, дело в том что с горем пополам я написал программу для шифрования методом цезаря, но меня ждал сюрприз, препод огорчил меня тем что нужно было делать все на билдере или подобие ему. Отправила на перездачу, а времени по просту не хватает, очень надеюсь на вашу помощь, нужна форма с... http://www.cyberforum.ru/cpp-beginners/thread1062888.html
Нужно заменить последнюю заглавную букву в строке на слово "Kukushechka" C++
То есть программа должна сама искать последнюю заглавную букву, определять ее номер в строке, ставить вместо нее и последующего текста слово "Kukushechka". В таком состоянии она только определяет номер и никак не хочет заменять. #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <string.h> #include <iostream> using namespace std; char f( char *g, char* kuk);
Странное поведение cin C++
Перегружаю оператор ввода следующим образом: #include <iostream> using namespace std; class Vector2D { public: long double x, y;
C++ Однонаправлений список. Операції: “[]” видалити елемент в заданій позиції, наприклад: int i; list L; L[i]; “[]” додати елемент в задану позицію, напр http://www.cyberforum.ru/cpp-beginners/thread1062878.html
Помогите. Есть одна написаная. Условия: Черга. Операції: “+” додати елемент ; “-“ видалити елемент ; bool() перевірка «чи порожня черга?» В ней все работает, все запускается, не могу переделать на вот эту УСЛОВИЕ: Однонаправлений список. Операції: “” видалити елемент в заданій позиції, наприклад: int i;
C++ Теорема Пифагора Здравствуйте, программа всякий раз выводит в ответе "0". В чём ошибка? Благодарен! Язык C++, Visual C++ 2008 Express #include <iostream> #include <conio.h> #include <math.h> using namespace std; int a, b, c, result; int main() { setlocale(0, ""); cout <<"Если элемент неизвестен - пишем 0"<<endl; подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1

Перевод из string в wstring. Неправильная кодировка - C++

04.01.2014, 21:03. Просмотров 896. Ответов 5
Метки (Все метки)

Здорова господа!

Перевожу строку из string в wstring, в строке русские символы и они выводятся в консоли не крякозябрами а просто палочками. От код:

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
#include <iostream>
using std::wcout;
using std::cout;
using std::endl;
#include <io.h>
#include <fcntl.h>
#include <Windows.h>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    //setlocale(LC_ALL,"utf-8");
    //setlocale(LC_ALL,"ancII");
    _setmode(_fileno(stdout), _O_U8TEXT);
    _setmode(_fileno(stdin), _O_U8TEXT);
    
    string s="hellow world мазафака.  , да да";
    wstring s2=L"hellow world мазафака.  , да да";
    wstring s1(s.begin(),s.end());
//  cout <<"s1.size()= "<<s1.size()<<" s.size()= "<<s.size()<<endl;
    wcout <<"s1= "<<s1<<L"\n\r";//тут фигня выводиться
    wcout <<"s2= "<<s2<<L"\n\r";//так нормально выводиться
 
    return 0;
}
Как сделать что б символы попадали не крякозябры?

Добавлено через 27 минут
почему крякозябры то ясно, символы то в кодировке ASCII, для того что б записать в wstring нужно сначала строку перевести в utf-8 из ASCII тогда все будет нормально, но как ее перевести? На помощь приходит функция widechartomultibyte()
C++
1
2
3
4
5
6
string result_u = MultiByteToWideChar(CP_ASCII,
        0,
        str,
        -1,
        0,
        0);
CP_ASCII - такого значения нету, как определить синоним для CP_ASCII, ну это например для windows 1251 это 1251, а для CP_ASCII что за синоним будет?

Добавлено через 2 часа 18 минут
Короче добавил 1251 и все перевелось, так что получается что в какой же все таки кодировке строка:
C++
1
string s="hellow world мазафака.  , да да";
???????????

Ну понятно елси 1251 и все заработало, то в 1251. А чож тогда все говорят что в С++ символы в кодировке ASCII??? или в кодировках 1251 и в ASCII русские символы одинаково отображаются? Я ничего непойму. Может быть в кодировке 1251 они потому что у меня м.б. сам файл в кодировке 1251? Да хз. от загадка.

Добавлено через 2 часа 41 минуту
Ладно нету русских символов в ASCII, там только латиница.

Добавлено через 53 секунды
это наверно СП1251, у меня наверно файл с кодом программы находится в сп1251 поэтому и перевелось из нее норм.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru