Заставить мигать среднюю букву

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

  #include<string.h>    
  #include<conio.h>
  #include<iostream.h>
  #include<stdio.h>

char text[255];
int txtposition,txtlength;

void main()
{
clrscr();
gets(text);
txtlength=strlen(text);

char lastchar=text[txtlength-1];
cout<<"Your text is: ";
for(txtposition=0;txtposition<txtlength-1;txtposition++)
{
cout<<text[txtposition];
}
textcolor(WHITE+128);
cprintf("%c", lastchar);


for(txtposition=txtlength-2;txtposition>=0;txtposition--)
{
  cout<<text[txtposition];
}

getch();
}

Спасибо за твою помощь!

3 ответа

Стандартная библиотека C++ не предоставляет никаких средств для мерцания символов.

Вы можете сделать это в зависимости от платформы, но стоит отметить, что окна консоли Windows (насколько я знаю) не поддерживают прямое мигание текста, как в режиме текстового экрана оригинального IBM PC. На оригинальном IBM PC один бит спецификации цвета мог быть настроен либо на высокую интенсивность, либо на мигающий, с миганием по умолчанию. Я всегда перенастраивал его с высокой интенсивностью в своих программах, и в соответствующем механизме для окон консоли Windows биты всегда определяют цвет.

Так что это было бы сложно сделать даже в Windows, если только вы не работаете в DOSBox, который эмулирует старый ПК. Я не знаю, какую функциональность он предлагает. Может быть, он даже мигает.

Но вы можете легко пометить соответствующие буквы другими способами.

Например, вы можете использовать

  • прописные и строчные буквы,

  • подчеркивание символов, размещенных на следующей строке,

  • круглые скобки (как вы сделали в своем примере здесь),

  • цвета (в зависимости от платформы),

  • другой шрифт, смелость, что угодно.

Я рекомендую перейти на современный компилятор, если у вас обычный современный ПК. Компиляторы бесплатны. Также вам нужен лучший учебный материал, например void main является нестандартным и допускается только несколькими компиляторами.

Чтобы заставить мигать средний символ, либо ваш выходной терминал должен быть способен отображать мигающие символы, используя специальный код управления терминалом, как описано здесь, либо использовать gotoxy() функция из отдельного потока, который отображает ' ' или фактический символ, чередующийся для определенной частоты мигания.

Похоже, что для Turbo C/C++ вы можете использовать библиотеку графики и / или встроенные функции conio. ( https://answers.yahoo.com/question/index?qid=20080813072809AAEguz0)

Но вышеупомянутое не переносимо, поскольку графическая библиотека специфична для Turbo, а conio специфична для некоторых основанных на dos компиляторов / библиотек.

Если вы перейдете к компилятору, такому как gcc/g++, вы можете посмотреть библиотеку curses: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

Другие вопросы по тегам