Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос про ввод-вывод одного символа

70K
15 мая 2011 года
Alice-pers
2 / / 15.05.2011
//программа работает с английскими символами, с русскими - возникают проблемы
#include<stdio.h>
#include<iostream>
void main()
{
setlocale(LC_ALL, "RUS"); //кириллица
char ch;
//вводим русский символ
scanf("%c",&ch);
//выводим русский символ
printf("%c",ch);
//символ выводится, но не правильный
//Помогите найти ошибку
}
360
16 мая 2011 года
P*t*
474 / / 15.02.2007
Полагаю, у вас используется кодировка utf8. В этой кодировке русские буквы занимают два байта. Про utf достаточно хорошо написано в википедии.
Варианты:
а) разбираться с устройством utf и считывать по несколько байтов
б) сделать, чтоб использовалась какая-нибудь другая кодировка.

P.S Вот нехорошо создавать одинаковые темы в разных разделах. Получилось, что я по невнимательности лишний раз отвечаю на вопрос, на который уже ответил Енот_в_Засаде в другом разделе.
8.2K
20 мая 2011 года
user1
71 / / 16.03.2007
А разве не все дело в ChartoOem(или OemtoChar) ?
CharToOemBuff позволяет задавать количество символов преобразования.
Для одного символа задаем 1. Конечный '\0' в данном случае не нужен.
316
21 мая 2011 года
Alm3n
889 / / 29.05.2009
Цитата: user1
А разве не все дело в ChartoOem(или OemtoChar) ?


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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог