Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
идрис
0 / 0 / 0
Регистрация: 09.05.2012
Сообщений: 11
1

Вывести на экран бегущую строку

09.05.2012, 20:09. Просмотров 2740. Ответов 13
Метки нет (Все метки)

помогите создать программу по си..
надо вывести на экран бегущую строку..
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2012, 20:09
Ответы с готовыми решениями:

Ввести строку, вывести на экран пословно, причем каждое слово вывести в обратном порядке
Задание: Ввести строку, вывести на экран пословно, причем каждое слово вывести в обратном порядке....

Ввести с клавиатуры строку и вывести её на экран
Ребята выручайте. Спасибо большое! Задание. a) Статическая память. Двумерный массив. Ввести с...

Вывести строку на экран задом наперед
Всем доброго времени суток! У меня завтра гос.экзамен, на котором будут практические задания в...

Как вывести на экран только определённую строку из файла?
Добрый день подскажите как вывести на экран только определённую строку из файла.

Удалить все символы из строки, и вывести строку на экран
необходимо удалить все символы из строки, и вывести строку на экран Будет ли работать? ...

13
Петррр
6177 / 3478 / 898
Регистрация: 28.10.2010
Сообщений: 5,928
09.05.2012, 20:35 2
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main(void) 
{
    int pos = -1;
    while (pos != 80) 
    {
        COORD coord ;
        coord.X = ++pos;
        coord.Y = 0;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
        puts("I'm running");
        Sleep(100);
        system("cls");
    }
    system("pause");
    return EXIT_SUCCESS;
}
4
Nomad82
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 2
11.08.2014, 20:38 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// runing line
#include<iostream>
#include<windows.h>
using namespace std;
void main ()
{
const int size = 10;
int temp;
int a [size];
for (int i=0; i<size; i++)
{
    a [i] = rand () % 100;
}
while (true)
{
    system ("cls");
    temp = a [size-1];
    for (int i = 10; i>0; i--)
    {
        a [i] = a [i-1];
    }
        a [0] = temp;
    for (int i =0; i<size; i++)
    {
        cout << a [i] << " ";
    }
    Sleep (2000);
}
}
0
BlackIce
310 / 172 / 73
Регистрация: 18.01.2014
Сообщений: 387
11.08.2014, 22:02 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
#include <windows.h> // Sleep()
 
int main() {
    char s[] = "I am running!       ";
    size_t l = strlen(s) - 2, i = 0, j;
    for (;;) {
        fwrite(s + i, 1, l - i, stdout);
        fwrite(s, 1, i, stdout);
        fflush(stdout);
        if (++i == l) i = 0;
        Sleep(200);
        for (j = 0; j <= l; ++j) putchar('\b');
        fflush(stdout);
    }
}
0
11.08.2014, 22:02
korvin_
2406 / 1883 / 341
Регистрация: 28.04.2012
Сообщений: 6,481
11.08.2014, 22:23 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void
fmtline(char *dst, size_t dstsize, char *line, size_t linesize, int indent, int space)
{
    int bytes;
 
    memset(dst, space, dstsize);
    if (indent < 0) {
        bytes = linesize + indent;
        indent = -indent;
        if (bytes > dstsize)
            bytes = dstsize;
        line += indent;
    } else {
        bytes = dstsize - indent;
        if (bytes > linesize)
            bytes = linesize;
        dst += indent;
    }
    if (bytes > 0)
        memcpy(dst, line, bytes);
}
 
#define BUFSIZE 80
#define HELLO   "Hello World!"
 
int
main(int argc, char *argv[])
{
    char buf[BUFSIZE];
    char *line;
    size_t linesize;
    int minindent, maxindent, indent;
 
    if (argc > 1)
        line = argv[1];
    else
        line = HELLO;
 
    linesize = strlen(line);
    minindent = -linesize;
    maxindent = BUFSIZE;
    while (1)
        for (indent = maxindent; indent > minindent; indent--) {
            fmtline(buf, BUFSIZE, line, linesize, indent, ' ');
            buf[BUFSIZE-1] = '\0';
            printf("%s\r", buf);
            sleep(100);
        }
    return 0;
}
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
12.08.2014, 13:54 6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
void print_string(const char* const str)
{
    int i, j;
    for( i = 79 - strlen(str); i >= 0; --i ) {
            for( j = 0; j < i; ++j ) { putchar(' '); }
            puts(str);
    }
}
 
int main(void)
{
    print_string("Hello, World!");
    return 0;
}
0
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
15.08.2014, 14:46 7
Даже удивительно Vtulhu, какая у вас лажа!
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
16.08.2014, 12:30 8
Виктор Шендерович

Встреча в лифте


Фазиль Искандер любил и умел описывать громких дураков. Он даже посвятил этой разновидности стихотворение…
Одну встречу Искандера с дураком я видел своими глазами.
Дело было в конце семидесятых, в старом Дома Актера на Тверской (в ту пору – улице Горького). В лифт, где уже стоял я, вошел Искандер, а следом – громкий дурак с женой.
То, что этот дурак – громкий, выяснилось через несколько секунд, вот каким образом.
Искандер нажал на кнопку с цифрой, но лифт никуда не поехал: нужно было еще нажать кнопку «ход». И дурак, указав пальцем на Фазиля Искандера, громко сказал жене:
– Не знает, как пользоваться!
И радостно рассмеялся.
Фазиль Абдулович посмотрел на него посветлевшим благодарным взглядом. Это была долгожданная встреча писателя со своим персонажем…
0
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
16.08.2014, 13:03 9
Ответ предсказуемый, НО какой изящьный!!!
Приятно, что не все страдают "комплексом Бога".
Однако, лажа остается лежей
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
16.08.2014, 14:58 10
Вы можете кричать тут хоть до ночи, но пленку я уже истратил всювы уже в моем списке игнорирования.
0
Catstail
Модератор
24393 / 12332 / 2241
Регистрация: 12.02.2012
Сообщений: 20,036
16.08.2014, 18:05 11
Vtulhu, я завел Ваш пример в VC++. Это, все же, не бегущая строка...
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
16.08.2014, 21:16 12
Это иллюстрация того, как ее можно сделать.
0
Charles Kludge
Клюг
7647 / 3162 / 383
Регистрация: 03.05.2011
Сообщений: 8,381
19.08.2014, 00:31 13
Если кому интересно: Бегущая строка в текстмоде, нежно. Насилуем знакогенератор, но в С/С-- перетаскивайте сами.
0
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
20.08.2014, 13:52 14
Если совсем простенько, то вот

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
#include <windows.h>  // для Sleep() именно с больш. S
 
 
void run_string(char *spr, int lengs);
int num_char_st(char *st);
 
int main(void)
{
    char spr[] = "I am beginner!";    // бегущая строка
 
    run_string(spr, num_char_st(spr));
 
    return 0;
}
//########################  определяет длинну строки
int num_char_st(char *st)
 {
    char *sss;
 
    sss = st;
 
    while(*st)
      {
    st++;
      }
 
    return (st - sss);
 }
//########################
void run_string(char *spr, int lengstr)
{
    int i, j=0, k=0;   // различные индексы
    char ptr_ss[] = "                                             ";  // фоновая строка, которая будет печататься
    int lstrpint;
 
    lstrpint = num_char_st(ptr_ss);  // определяем длинну строки
 
    for(i = lstrpint -1; i > -(lengstr + 2); i--)
    {
 
      if(j < lengstr)
          {
            for(k=0; k <= j; k++)      // загружаем в фоновую строку, бегущую до конца (j < lengstr)
              ptr_ss[i + k] = *(spr + k);
 
            k = 0;   // при очень большой бегущей строке, чтобы ptr_ss[k] = ' '; не затирался нужный символ
          }
 
     if(j >= lengstr && i > 0)
        for(k=i; k < i + lengstr; k++)  // когда бегущая загружена полн-ю, начинаем ее перемещать по фоновой
           ptr_ss[k] = ptr_ss[k + 1];
 
     if(j >= lengstr && i < 1)
         for(k=0; k < i + lengstr; k++) // сливаем бегущую в левый край фоновой
              ptr_ss[k] = ptr_ss[k + 1];
 
     ptr_ss[k] = ' ';   // при перемещении и сливании затираем последний символ
 
      printf("%s \r", ptr_ss);
      Sleep(100);    // задержка в милисекундах, для (Windows)
      j++;
    }
}
0
20.08.2014, 13:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2014, 13:52

Вывести на экран строку, сумма элементов которой максимальна
Вывести на экран строку, сумма элементов которой максимальна

Вывести на экран матрицу, окрашивая первую строку зеленым цветом
Дана матрица А(mxn). Программа выводит на экран матрицу, окрашивая первую строку зеленым цветом....

Ввести строку, вывести пословно на экран, но слова в обратном порядке
если можно, с комментариями: Ввести строку, вывести пословно на экран, но слова в обратном порядке.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru