Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > После cin, Русские символы неправильно выводятся.


Автор: Xeno 26.10.2011, 11:33
Здравствуйте! Я давно не садился за C++, и решил пробежаться по основам. Сделал простейшую программу, но вот проблема - после ввода символов, вывести их в нужной кодировке программа не может. 

Скриншот опишет проблему лучше всяких слов: http://puu.sh/7Bdu

Вот код программы:

Код

#include <iostream>
#include <locale.h>
#include <string>
using namespace std;

int main()
{
    setlocale(LC_CTYPE,"Russian");
    system("TITLE iTermenal");

    string text;
    cout << "Введите текст: ";
    cin >> text;
    cout << "\nВы ввели \"" << text << "\"";
    cout << endl;
    system("PAUSE");
    return 0;
}

Автор: vol4ek 26.10.2011, 11:59
Код

#include <windows.h>

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

запусти приложение, клик правой кнопкой по окну и в свойствах поменяй шрифт с точечного на какой-нибудь другой.

Автор: Xeno 26.10.2011, 12:05
Я знаю про такой способ, но тот способ, что использовал я, год назад работал идеально. Так что меня больше интересует, где я в нем накосячил, нежели другие способы решения данной проблемы. smile

Автор: boostcoder 26.10.2011, 12:11
Цитата(Xeno @  26.10.2011,  11:33 Найти цитируемый пост)
LC_CTYPE

LC_ALL?

Автор: vol4ek 26.10.2011, 12:13
вот этого не знаю помнится ещё в VS2008 setlocale у меня не работало.

Автор: Xeno 26.10.2011, 12:13
Цитата(boostcoder @ 26.10.2011,  12:11)
Цитата
LC_CTYPE

LC_ALL?

Результат тот же.

Цитата(vol4ek @ 26.10.2011,  12:13)
вот этого не знаю помнится ещё в VS2008 setlocale у меня не работало.

Не знаю... Я год назад использовал тот же VS C++ Express 2010, тогда все работало нормально. И сейчас я использую его.

Автор: bsa 26.10.2011, 12:34
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=269794&kw=faq-c++

Автор: Xeno 26.10.2011, 13:39
Цитата(bsa @ 26.10.2011,  12:34)
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=269794&kw=faq-c++

Благодарю. Но в любом случае, ранее все работало по моему примеру, абсолютно нормально...

Автор: bsa 26.10.2011, 14:46
Возможно, кодировка исходника была другой (IBM-866), а не Windows-1251.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)