跑马灯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)
用于获取标准输出的句柄。在每次循环中,先输出跑马灯效果,然后将光标移动到文本的开头位置,再将文本向左移动一位,将最后一个字符放到文本的开头,以实现跑马灯效果。