C语言光标旋转与倒计时功能实现示例详解

目录
  • 1、光标旋转
  • 2、倒计时

1、光标旋转

首先问大家一个问题,大家觉得回车与换行是一个相同的概念吗?

很多人往往把它们两个当作是一个相同的概念,为什么会这么说呢?回想一下'\n',大家觉得这是回车符号呢?还是换行符号呢?好像我们在日常中并没有特意区分这两个概念,我们既说'\n'是一个回车符号,也说这是一个换行符号,这就是我们混淆的表象,但回车与换行确实两个不同的概念,接下来带大家了解一下回车与换行吧!

回车:代表的是光标回到当前行的最开始的位置。

换行:代表的是光标移动到下一行。

根据上面的概念,真正的回车符号应该是'\r',即回到当前行的起始位置,而我们通常了解的'\n'应该是回车换行符,因为它的功能既包括了回车,也包括了换行,即光标跳转到下一行的起始位置。

而我们今天讲的光标旋转功能就是利用了回车符'\r',接下来废话不多说,直接上代码!然会根据代码给大家进行讲解。

#include<stdio.h>
#include<windows.h>
int main()
{
    int index = 0;
    const char* lable = "|/-\\";//  \是特殊字符,如果想取字符本身,就要在前面加'\'
    while(1)
    {
        index %= 4;
        printf("[%c]\r", lable[index]);
        index++;
        Sleep(30);
    }
    system("pause");
    return 0;
}

这个程序首先是定义了一个char类型的数组lable,里面存储的元素依次为'| / - \',至于最后为什么用了两个\\,在程序中已经给出了相应的解释,然后构造一个死循环,对数组元素逐个循环打印,为了保证在打印完尾元素之后打印的是首元素,通过对index对4取余保证数组下标是始终为0~3,这样保证了数组元素的循环打印。

通过'\r'进行回车操作回到输出行的起始位置保证了每一次的输出都是在一行的起始位置处进行输出,然后通过休眠函数Sleep()进行控制每一次输出的间隔进而形成动态效果,这样就实现了光标旋转的功能。

注意:使用休眠函数需要引用windows.h头文件,休眠函数中()内的数字单位为毫秒。

2、倒计时

倒计时功能相对来说并不难实现,直接上代码,然后给大家简单解释一下。

#include<stdio.h>
#include<windows.h>
int main()
{
    int i = 9;
    for(;i>=0;i--)
    {
        printf("[%d]\r",i);
        Sleep(500);
    }
    system("pause");
    return 0;
}

其实这段代码也是简单的使用了'\r'与Sleep()休眠函数,然后实现了倒计时的功能。

两个程序的共同点是均使用了'\r'与Sleep()函数,看吧,这个我们在C语言中忽略的小小的点竟然能发挥处如此巨大的作用,想不到吧!好了,今天的分享到此结束,感谢大家的支持,更多关于C语言光标旋转与倒计时功能的资料请关注我们其它相关文章!

时间: 2021-11-24

计时器的time_t和clock_t 的两种实现方法(推荐)

想给自己初步完成的相空间搜索算法计算一下运行时间,于是尝试了如下使用 time_t 类型的方式 #include <stdlib.h> #include <iostream> #include <time.h> #include "StateFunctions.h" using namespace std; int main(int argc, char** argv) { time_t start, finish; time(&start)

C语言编程C++旋转字符操作串示例详解

目录 旋转字符串 字符串左旋 题前认知: 暴力移位: 三步翻转: 判断字符串旋转 题前认知 字符串追加判断 旋转字符串 字符串左旋 实现一个函数,可以左旋字符串中的k个字符. 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 题前认知: 一个字符串如果就定死了.eg:char arr[]="dfdf"什么的那多没意思,一点都没有人机交互的感觉,(虽然现在人机交互适合个体,不适合集群,但也是比死板的定死字符串舒服) 所以字符串得是我们可输入的,才有可玩性,玩的不

C语言小项目计时器的实现思路(倒计时+报警提示)

目录 实现思路 1.极简版本 运行效果 2.普通版本 运行效果 3.高级版本 运行效果 大家对计时器应该不陌生,我们在制定一个计划时,经常喜欢设置一个倒计时来规定完成时限,等到计时结束,它还会报警提示,今天,我就用C语言编写一个简易的倒计时计时器. 实现思路 简单介绍一下我的实现思路: 本文包括三个版本,分别是极简版.普通版.高级版: 极简版:简单的单次倒计时,只能设置秒数,计时通过Sleep()函数实现(粗略倒计时),先输入秒数cnt,然后每过1秒(Sleep(1000),cnt减1,直到cn

C语言之实现控制台光标随意移动的实例代码

原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动. //C语言实现控制台中光标随意移动 #include <stdio.h> #include <windows.h> #include <conio.h> HANDLE hout; //获得输入 char getIn

C语言实现简单的定时器

本文实例为大家分享了C语言实现简单的定时器的具体代码,供大家参考,具体内容如下 1.代码分析 2.代码 #include <stdio.h> #include <time.h> #include <conio.h> #ifndef CLOCKS_PER_SEC #define CLOCKS_PER_SEC 1000 #endif int main( void ) { clock_t start; long count = 1; start = clock(); whil

GO语言实现简单TCP服务的方法

本文实例讲述了GO语言实现简单TCP服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "net" "fmt" ) var (   maxRead = 1100     msgStop   = []byte("cmdStop")     msgStart  = []byte("cmdContinue")     ) func main() {       ho

Java语言实现简单FTP软件 FTP软件主界面(4)

首先看一下FTP软件的整体代码框架,具体内容如下 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; public class F

go语言实现简单http服务的方法

本文实例讲述了go语言实现简单http服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "flag"     "log"     "net/http"     "text/template" ) var addr = flag.String("addr", ":1718", "http service

GO语言实现简单的目录复制功能

本文实例讲述了GO语言实现简单的目录复制功能.分享给大家供大家参考.具体实现方法如下: 创建一个独立的 goroutine 遍历文件,主进程负责写入数据.程序会复制空目录,也可以设置只复制以 ".xx" 结尾的文件. 严格来说这不是复制文件,而是写入新文件.因为这个程序是创建新文件,然后写入复制数据的.我们一般的 copy 命令是不会修改文件的 ctime(change time) 状态的. 代码如下: 复制代码 代码如下: // 一个简单的目录复制程序:一个独立的 goroutine

Go语言实现简单Web服务器的方法

本文实例讲述了Go语言实现简单Web服务器的方法.分享给大家供大家参考.具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } 在这个例子中,类型 Hello 实现了 http.Handler. 注意: 这个例子无法在基于 web 的指南用户界面运行.为了尝试编写 web 服务器,可能需要安装

Go语言实现简单留言板的方法

本文实例讲述了Go语言实现简单留言板的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     // "fmt"     "io"     "log"     "net/http"     "text/template"     "time"     "database/sql"     "gi

基于C语言实现简单的走迷宫游戏

本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #include <cstdio> #include <deque> #include <windows.h> using namespace std; class node { public: int x,y; int lastOpt; }; deque<node> sta

Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)

本文为大家分享了FTP上传下载管理模块的实现方法,供大家参考,具体内容如下 1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传的文件或文件夹,点击"上传"按钮,会触发com.oyp.ftp.panel.local.UploadAction类的actionPerformed(ActionEvent e)方法,其主要代码如下 /** * 上传

常用Hash算法(C语言的简单实现)

如下所示: #include "GeneralHashFunctions.h" unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; unsigned int i = 0; for(i = 0; i < len; str++, i++) { hash = hash * a + (*str);

Java实现一个简单的定时器代码解析

定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术. Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务. Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法. 利用java制作定时器比较简单,有现成的接口帮助实现.java中制作定时器使用的是Timer和TimerTask,是util包的.java.util