Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2016, 12:17   #1
YRELIS
Пользователь
 
Регистрация: 10.07.2015
Сообщений: 14
Сообщение setlocale

Доброго времени суток.
Значит вопрос такой, пишу прогу на С++ на вывод спец. символов ASCII
Код:
// ----------------------------------------------------------------
#include <iostream>
#include <locale.h>
#include <Windows.h>
using namespace std;

int main()
{

	system("color f0");
	setlocale(LC_ALL, "en_US.UTF-8");
	unsigned char a;
	unsigned char b;
	unsigned char c;
	unsigned char d;
	unsigned char e;
	a = 219;
	b = 223;
	c = 177;
	d = 220;
	for (int i = 0; i < 40; i++) // 1
	{
		cout << a;

	} cout << endl;
	for (int i = 0; i < 13; i++) // 2
	{
		cout << a;
	}
	for (int i = 0; i < 2; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 10; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 2; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 13; i++)
	{
		cout << a;
	} cout << endl;
	for (int i = 0; i < 9; i++) // 3
	{
		cout << a;
	}
	for (int i = 0; i < 2; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 18; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 2; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 9; i++) 
	{
		cout << a;
	} cout << endl;
	for (int i = 0; i < 7; i++) // 4
	{
		cout << a;
	}
	for (int i = 0; i < 1; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 24; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 1; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 7; i++) 
	{
		cout << a;
	} cout << endl;
	for (int i = 0; i < 5; i++) // 5
	{
		cout << a;
	}
	for (int i = 0; i < 1; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 1; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 3; i++)
	{
		cout << d;
	}
	for (int i = 0; i < 14; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 4; i++)
	{
		cout << d;
	}
	for (int i = 0; i < 6; i++)
	{
		cout << c;
	}
	for (int i = 0; i < 1; i++)
	{
		cout << b;
	}
	for (int i = 0; i < 5; i++) 
	{
		cout << a;
	} cout << endl;
	
// --------------   много циклов 

	// а тут у меня легла программа, и пришлось дальше через cout

		cout << c; cout << c; cout << c; cout << c;
		cout << d;
		cout << a; cout << a; cout << a; cout << a; cout << a << endl;
		// 17
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << d;
		cout << c; cout << c; cout << c;
		cout << b;
		cout << a; cout << a; cout << a; cout << a;
		cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c;
		cout << c; cout << c; 
		cout << d;
		cout << a;
		cout << b;
		cout << c; cout << c; cout << c;
		cout << d;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a << endl;
		// 18
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << d;
		cout << c; cout << c; cout << c;
		cout << b; cout << b;
		cout << a;
		cout << d; cout << d; cout << d; cout << d; cout << d; cout << d; cout << d; cout << d; 
		cout << b; cout << b;
		cout << c; cout << c; cout << c; cout << c;
		cout << d;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a << endl;
		// 19
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << d; cout << d; cout << d;
		cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c; cout << c;
		cout << d; cout << d; cout << d;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a << endl;
		// 20
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a;
		cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a; cout << a << endl;
		cout << "" << endl;
		cout << "        ___by_Elissev_Yroslav___" << endl;
		cout << "" << endl;
	return 0;

}
Вопрос вот в чем, можно ли как то совместить этот setlocale и русскую кодировку
Код:
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	setlocale(LC_CTYPE, "russian");
Жду ответа)
Изображения
Тип файла: jpg смайл.jpg (52.2 Кб, 34 просмотров)
YRELIS вне форума Ответить с цитированием
Старый 25.04.2016, 12:47   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какие символы вы выводить пытаетесь?

Если ASCII, то зачем utf-8 поставили? Если юникод, то странные коды символов. 220 это символ http://unicode-table.com/ru/#00DC + в utf-8 один байт занимают только стандартные ASCII символы 0-127 http://local.joelonsoftware.com/wiki...BB%D0%BE%D0%B2.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.04.2016, 14:06   #3
YRELIS
Пользователь
 
Регистрация: 10.07.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Если юникод, то странные коды символов. 220 это символ http://unicode-table.com/ru/#00DC + в utf-8 один байт занимают только стандартные ASCII символы 0-127
Вот скрин цифр
Изображения
Тип файла: png юникод.png (77.3 Кб, 38 просмотров)
YRELIS вне форума Ответить с цитированием
Старый 25.04.2016, 14:45   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так это совсем не юникод/utf-8.
И setlocale "en_US.UTF-8" по-моему не работает на винде.

Вроде это 437.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.04.2016 в 14:49.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русская кодировка и setlocale fire_on Общие вопросы C/C++ 8 27.01.2012 18:02