#c #c
#c #c
Вопрос:
Я пытаюсь сделать что-то вроде этого:
Выведите
затем |
, затем /
затем _
, и это продолжается в цикле. Вот мой код:
#include <stdio.h>
int main()
{
while(1)
{
printf("\");
printf("|");
printf("/");
printf("_");
}
return 0;
}
Проблема, с которой я сталкиваюсь, заключается в том, что он печатает его последовательно, как мне заставить его печатать в том же положении курсора с некоторой задержкой по времени в C или C ?
Комментарии:
1. Пожалуйста,
#include <cstdio>
не#include <stdio.h>
, при написании C .
Ответ №1:
Я не совсем понимаю, что вы имеете в виду под How to make cursor rotate
? Но вы случайно не хотели сделать что-то подобное:
#include <stdio.h>
#include <time.h>
#define mydelay 100
void delay(int m)
{
clock_t wait = m clock();
while (wait > clock());
}
int main()
{
while(1)
{
printf("\b");
delay(mydelay);
printf("|b");
delay(mydelay);
printf("/b");
delay(mydelay);
printf("_b");
delay(mydelay);
}
return 0;
}
Комментарии:
1. Да, но это полностью зависит от среды, работает это или нет. И
clock()
обычно измеряет время процессора для процесса, а не время работы в сети.
Ответ №2:
#include <stdio.h>
int main()
{
while(1)
{
printf("\"); printf("%c", 8); // 8 is the backspace ASCII code.
printf("|"); printf("%c", 8); // %c is the printf format string for single character
printf("/"); printf("%c", 8); // assuming output to a terminal that understands
printf("_"); printf("%c", 8); // Backspace processing, this works.
}
return 0;
}
Если вам нужна задержка, то добавьте вызов к вашей собственной функции задержки, которая находится в режиме ожидания, или вызывает режим ожидания, или выполняет какую-либо другую обработку.
Ответ №3:
#include <stdio.h>
#include <stdlib.h> /* for sleep() */
int main(void)
{
fprintf(stderr,"Here we are: ");
while(1)
{
fprintf(stderr,"b\");
sleep(1);
fprintf(stderr,"b|");
sleep(1);
fprintf(stderr,"b/");
sleep(1);
fprintf(stderr,"b-");
sleep(1);
}
return 0;
}
Ответ №4:
Вы можете добавить символ пробела ( b
) после печати, хотя работает ли это, полностью зависит от среды, в которой отображаются выходные данные вашей программы.
Вы также захотите ввести задержку, чтобы действительно видеть изменения (хотя это может произойти естественным образом, как часть вашего более широкого алгоритма).
#include <cstdio>
#include <cstdlib>
int main()
{
while(1) {
printf("\b"); sleep(1);
printf("|b"); sleep(1);
printf("/b"); sleep(1);
printf("_b"); sleep(1);
}
return 0;
}
Вы также могли бы заглянуть в библиотеку curses для правильного текстового графического интерфейса fu.
Ответ №5:
Вы могли бы добавить возврат каретки в начало ваших жал.
например
printf("r|");
sleep(1);
или добавьте пробел после печати.-
Ответ №6:
Ни в C, ни в C нет стандартного способа сделать это.
Вы можете использовать стороннюю библиотеку, такую как ncurses или escape-последовательности ANSI (если в ОС Unix).
Ответ №7:
В C вы можете напечатать символ пробела, используя ‘b’ или значение ascii 8. Используйте это перед каждой печатью. Я думаю, вам понадобится некоторая задержка между двумя операторами печати.
Комментарии:
1. Если вы работаете в Linux, для этого есть библиотека curses.