C语言实现程序的暂停

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<limits>
/*方法一,注意需要添加头文件#include<Windows.h>后才能使用
int main(void)
{
    printf("I need a pause here.\n");
    system("pause");
    printf("And here too.\n");
    system("pause");//程序内添加这一步
    return 0;
}*/


//方法二使用getchar();或者cin.get();但是前面有接受输入语句时会失效,需要清除残留输入流
//1)while((c=getchar())!='\n'&&c!=EOF);
//2)cin.clear();
/*无法使用,会有奇怪的bug
int main(void)
{
    int i_test, c;
    printf("Please enter an integer:");
    scanf("%d", &i_test);
    printf("You just entered %d.\nPress enter to continue...", i_test);
    while ((c = getchar()) != '\n'&&c != EOF);//清空输入流
    clearerr(stdin);
    getchar();
    return 0;
}*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 C 语言程序,可以在终端上放烟花: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define WIDTH 80 #define HEIGHT 24 void clear() { printf("\033[2J\033[H"); } void sleep_ms(int ms) { struct timespec ts = {0, ms * 1000000}; nanosleep(&ts, NULL); } void print_fuse(int x, int y, int len) { for (int i = 0; i < len; ++i) { printf("\033[%d;%dH@", y - i, x); fflush(stdout); sleep_ms(50); } } void print_sparkle(int x, int y, char c) { printf("\033[%d;%dH%c", y, x, c); fflush(stdout); sleep_ms(50); } void explode(int x, int y) { char sparkles[] = ".:*"; for (int i = 0; i < 30; ++i) { char c = sparkles[rand() % (sizeof(sparkles) - 1)]; int dx = rand() % 21 - 10; int dy = rand() % 7 - 3; print_sparkle(x + dx, y + dy, c); } } int main() { srand(time(NULL)); clear(); while (1) { int x = rand() % WIDTH + 1; int y = HEIGHT; int len = rand() % 15 + 10; print_fuse(x, y, len); explode(x, y - len); } return 0; } ``` 这个程序使用 ANSI 转义序列在终端上输出字符,从而实现放烟花的效果。具体实现过程如下: 1. `clear()` 函数用于清空终端屏幕。 2. `sleep_ms(int ms)` 函数用于让程序暂停指定毫秒数,以控制烟花的爆炸速度。 3. `print_fuse(int x, int y, int len)` 函数用于打印导火线,从位置 `(x, y)` 开始,长度为 `len`。打印时每个字符间暂停 50 毫秒,以控制导火线的燃烧速度。 4. `print_sparkle(int x, int y, char c)` 函数用于打印烟花爆炸时的火花,位置为 `(x, y)`,字符为 `c`。每个火花暂停 50 毫秒,以控制火花的闪烁速度。 5. `explode(int x, int y)` 函数用于让烟花在位置 `(x, y)` 爆炸。爆炸时会随机产生 30 个火花,并在随机方向上飞散。 6. `main()` 函数无限循环,每次循环产生一个随机位置和随机长度的导火线,然后让烟花爆炸。 要运行这个程序,需要在支持 ANSI 转义序列的终端(如 Linux 终端或 macOS 终端)上编译并运行。可以使用以下命令进行编译: ``` gcc fireworks.c -o fireworks ``` 然后使用 `./fireworks` 命令运行程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值