Не работает корректный вывод русских букв - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Работаю в графическом режиме Столкнулся с проблемой, что функция printf нивкакую не хочет выводить русский текст. outtext и outtextxy выводят нормально, а ghbyna нивкакую. Скачал keyrus не помогло. Или подскажите, как сделать ввод в графическом режиме, что бы введеное значение выводило в указанную точку экрана.(scanf только по строкам пишет)

Решение задачи: «Не работает корректный вывод русских букв»

textual
Листинг программы
case evKeyDown:
{
   saveState();
 
   if (strchr(padKeys,event.keyDown.charScan.scanCode) && (event.keyDown.controlKeyState & kbShift))
   {
      event.keyDown.charScan.charCode = 0;
 
      if (anchor < 0)
      {
         anchor = curPos;
      }
   }
   else
   {
      anchor = -1;
   }
 
   switch(event.keyDown.keyCode)
   {
      case kbLeft:
      {
         if (curPos > 0)
         {
            --curPos;
         }
 
         break;
      }
      case kbRight:
      {
         if (curPos < strlen(data))
         {
            ++curPos;
         }
      break;
      }
      case kbHome:
      {
         curPos = 0;
         break;
      }
      case kbEnd:
      {
         curPos = strlen(data);
         break;
      }
      case kbBack:
      {
         if (curPos > 0)
         {
            strcpy(data+curPos-1,data+curPos);
            --curPos;
 
            if (firstPos > 0)
            {
               --firstPos;
            }
 
            checkValid(true);
         }
 
         break;
      }
      case kbDel:
      {
         if (selStart == selEnd)
         {
            if (curPos < strlen(data))
            {
               selStart = curPos;
               selEnd = curPos + 1;
            }
         }
 
         deleteSelect();
         checkValid(true);
         break;
      }
      case kbIns:
      {
         setState(sfCursorIns,bool(!(state & sfCursorIns)));
         break;
      }
      default:
      {
         if (event.keyDown.charScan.charCode >= ' ')
         {
            deleteSelect();
 
            if (state & sfCursorIns)
            {
               // The following must be a signed comparison!
               if (curPos < (short) strlen(data))
               {
                  strcpy(data + curPos,data + curPos + 1);
               }
            }
 
            if (checkValid(true))
            {
               if (strlen(data) < maxLen)
               {
                  if (firstPos > curPos)
                  {
                     firstPos = curPos;
                  }
 
                  memmove(data+curPos+1,data+curPos,strlen(data+curPos)+1);
                  data[curPos++] = event.keyDown.charScan.charCode;
               }
 
               checkValid(false);
            }
         }
         else if (event.keyDown.charScan.charCode == CONTROL_Y)
         {
            *data = 0;
            curPos = 0;
         }
         else
         {
            return;
         }
 
         break;
      }
   }
 
   adjustSelectBlock();
 
   if (firstPos > curPos)
   {
      firstPos = curPos;
   }
 
   i = curPos - size.x + 2;
 
   if (firstPos < i)
   {
      firstPos = i;
   }
 
   drawView();
   clearEvent(event);
   break;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы