The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"setlocale and isprint"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"setlocale and isprint"  
Сообщение от sickboy email on 28-Фев-06, 19:46 
hi,

есть такой простой код,

#include<ctype.h>
#include<stdio.h>
#include <locale.h>

int main(void)
{
   char c = 'А';
   setlocale(LC_CTYPE, "ru_RU.KOI8-R");
   if(isprint(c))
      printf("%c - печ\n",c);
   else
      printf("%c - не печ\n",c);
   return 0;
}

после компиляции ни в какую не хочет символ А (русский) считать печатным.
система freeBSD 6.0, под slackware работает.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "setlocale and isprint"  
Сообщение от Wulf on 28-Фев-06, 21:50 
>hi,
>
>есть такой простой код,
>
>#include<ctype.h>
>#include<stdio.h>
>#include <locale.h>
>
>int main(void)
>{
>   char c = 'А';
>   setlocale(LC_CTYPE, "ru_RU.KOI8-R");
>   if(isprint(c))
>      printf("%c - печ\n",c);
>   else
>      printf("%c - не печ\n",c);
>   return 0;
>}
>
>после компиляции ни в какую не хочет символ А (русский) считать печатным.
>
>система freeBSD 6.0, под slackware работает.

дело в typecasting-е из char в int. Измените: unsigned char c = 'А';

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру