【C语言】实现程序的暂停

        编写程序时,有时候需要让程序在某些地方暂停执行,等待用户输入或者观察程序执行结果。在 C 语言中,有多种方法可以实现程序的暂停,包括 system("pause")getchar() 和 while ((c = getchar()) != '\n' && c != EOF)。在本篇博客中,我们将详细介绍这三种方法的使用方法、使用场景和举出实例。

system("pause")

getchar()

while ((c = getchar()) != '\n' && c != EOF)

目录

 system("pause")

getchar()

while ((c = getchar()) != '\n' && c != EOF)


1、 system("pause")

system("pause") 是一种常见的在 Windows 平台下暂停程序执行的方法。它会调用系统命令 pause,使程序暂停并等待用户按下任意键后才会继续执行。以下是一个简单的示例代码:

#include <stdlib.h>

int main() {
    printf("程序开始执行\n");
    
    printf("按任意键继续...\n");
    system("pause");  // 暂停程序执行
    
    printf("程序继续执行\n");
    
    return 0;
}

在用户交互式程序中,使用 getchar() 来暂停程序执行以等待用户输入;在需要观察程序执行过程或者调试程序时,使用 system("pause") 来暂停程序执行。

2、getchar()

getchar() 函数可以从标准输入中读取一个字符,可以利用这一特性来实现程序的暂停。当程序执行到 getchar() 时,会等待用户输入一个字符后才会继续执行。以下是一个示例代码:

include <stdio.h>

int main() {
    printf("程序开始执行\n");
    
    printf("按回车键继续...\n");
    getchar();  // 等待用户输入一个字符
    
    printf("程序继续执行\n");
    
    return 0;
}

 在任何平台下,需要暂停程序执行并等待用户输入一个字符后继续执行。


3、while ((c = getchar()) != '\n' && c != EOF)

#include <stdio.h>

int main() {
    printf("请输入一行字符:\n");
    while ((c = getchar()) != '\n' && c != EOF) {
        // 循环等待用户输入一行字符
    }
    
    printf("程序继续执行\n");
    
    return 0;
}

在需要等待用户输入一行字符后才继续执行的情况下使用。

以上均为在C语言程序中暂停程序的方法,可以根据不同情况进行使用。

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

17_Kevin

你们的点赞收藏是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值