The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
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, 21:50 , 28-Фев-06 (1)
    >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 = 'А';




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

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