Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.10.2009, 15:02   #1
sde
Новичок
Джуниор
 
Регистрация: 09.10.2009
Сообщений: 7
По умолчанию £

Как в консоли вывести знак £ ?
Вот код:

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL, "Russian"); 
	unsigned char a=0;
	int i=0;
	while(i<=255)
	{
		cout << i << "..."<< a << endl;
		a++;
		i++;
	}

	_getch();
	return 0;
}
При выводе вместо 156-ого симовола £ получается символ ?

Последний раз редактировалось Sazary; 10.10.2009 в 01:53.
sde вне форума   Ответить с цитированием
Старый 09.10.2009, 17:04   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,997
По умолчанию

По идее это зависит от шрифта (то есть от свойств окна). Far нормально показывает этот знак, если поставить шрифт Lucida Conslole. Если стоит растровый шрифт - показывает кривой фак.
ds.Dante вне форума   Ответить с цитированием
Старый 12.10.2009, 14:14   #3
sde
Новичок
Джуниор
 
Регистрация: 09.10.2009
Сообщений: 7
По умолчанию

Шрифт менять на Lucida Conslole я уже пробовал. Та же самая ерунда получается.
Вывод меняется в зависимости от того какую локаль прописываю. Но всё равно вместо части символов получаются вопросительные знаки.

HELP!!! HELP!!! HELP!!! HELP!!! HELP!!! HELP!!! HELP!!! HELP!!! HELP!!!
sde вне форума   Ответить с цитированием
Старый 12.10.2009, 15:33   #4
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,997
По умолчанию

Интересно. Чтобы ввести этот знак нужно набрать Alt+0163 (без нуля не катит). А команда cout << (int)'£'; выводит 63. Не знаю, откуда взялось
Цитата:
Сообщение от sde Посмотреть сообщение
При выводе вместо 156-ого симовола £

Лично мне не удалось вывести этот знак в консоль.
ds.Dante вне форума   Ответить с цитированием
Старый 12.10.2009, 16:03   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

£ а он не Юникодовский случайно?
именно поэтому иногда он есть(на одних шрифтах и чарсетах) а иногда нет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 19.10.2009, 10:32   #6
sde
Новичок
Джуниор
 
Регистрация: 09.10.2009
Сообщений: 7
По умолчанию

Есть у кого нибудь мысли почему не получается вывести этот символ?
sde вне форума   Ответить с цитированием
Старый 19.10.2009, 11:23   #7
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Почему так не выводит?!
Код:
#include <iostream>
#include "stdafx.h"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	cout<<(wchar_t)156<<endl;
	system("pause");
	return 0;
}
Cpluser вне форума   Ответить с цитированием
Старый 19.10.2009, 16:34   #8
sde
Новичок
Джуниор
 
Регистрация: 09.10.2009
Сообщений: 7
По умолчанию

Так выводит 156, а хочется £.....

Кто-нибудь знает?
sde вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


22:47.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.