跑马灯c语言代码

以下是一个简单的跑马灯效果的C语言代码:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main() {
    int i;
    char text[] = "Hello, World!"; // 跑马灯显示的文本
    int len = sizeof(text) - 1; // 文本长度

    while (1) {
        system("cls"); // 清屏

        // 输出跑马灯效果
        for (i = 0; i < len; i++) {
            printf("%c", text[i]);
        }

        // 移动文本
        char temp = text[0];
        for (i = 0; i < len - 1; i++) {
            text[i] = text[i + 1];
        }
        text[len - 1] = temp;

        Sleep(200); // 延时200毫秒
    }

    return 0;
}

这段代码使用了Windows系统的API函数Sleep()来实现延时效果,system("cls")用于清屏。在每次循环中,先输出跑马灯效果,然后将文本向左移动一位,再将最后一个字符放到文本的开头,以实现跑马灯效果。

当然,还可以使用其他方法来实现跑马灯效果。以下是另一种使用光标控制的方法:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main() {
    int i;
    char text[] = "Hello, World!"; // 跑马灯显示的文本
    int len = sizeof(text) - 1; // 文本长度

    while (1) {
        system("cls"); // 清屏

        // 输出跑马灯效果
        for (i = 0; i < len; i++) {
            printf("%c", text[i]);
        }

        // 移动光标
        COORD coord;
        coord.X = 0;
        coord.Y = 0;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

        // 移动文本
        char temp = text[0];
        for (i = 0; i < len - 1; i++) {
            text[i] = text[i + 1];
        }
        text[len - 1] = temp;

        Sleep(200); // 延时200毫秒
    }

    return 0;
}

这段代码使用了Windows系统的API函数SetConsoleCursorPosition()来移动光标位置,GetStdHandle(STD_OUTPUT_HANDLE)用于获取标准输出的句柄。在每次循环中,先输出跑马灯效果,然后将光标移动到文本的开头位置,再将文本向左移动一位,将最后一个字符放到文本的开头,以实现跑马灯效果。