URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5191
[ Назад ]

Исходное сообщение
"setlocale and isprint"

Отправлено sickboy , 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 работает.


Содержание

Сообщения в этом обсуждении
"setlocale and isprint"
Отправлено Wulf , 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 = 'А';