【C语言】Sleep()函数----详解

🍁 博客主页:江池俊的博客

🍁收录专栏:C语言——探索高效编程的基石

🍁 如果觉得博主的文章还不错的话,请点赞👍收藏🌟 三连支持一下博主💞

目录

前言 

📌C语言sleep函数 

 sleep 函数的基本语法: 

注意 

📌实例

编写代码,演示多个字符从两端移动,向中间汇聚。

不使用sleep函数的效果(while循环实现)

使用sleep函数的效果(while循环实现)

for循环实现

while语句与for语句的转换:


前言 

在C语言中,sleep函数是一个非常有用的函数,用于实现程序的延时功能。无论是在控制程序执行速度、模拟实时系统、或者创建交互式用户体验,sleep函数都能够发挥重要作用。它允许程序在指定的时间间隔内暂停执行,并在暂停期间使系统的处理器资源得到休息。

通过使用sleep函数,程序员可以轻松地控制程序的执行速度,以适应不同的场景和要求。它可以帮助程序实现精确的时间控制,例如在游戏开发中实现动画效果的流畅展示,或者在多线程编程中确保不同线程的协调运行。此外,sleep函数还可以用于模拟实时系统的行为,以便更好地理解和调试程序。

本文将详细介绍C语言中sleep函数的使用方法、注意事项和潜在应用场景,旨在帮助读者更好地掌握并灵活运用这个强大的函数。无论您是一位C语言初学者,还是具备一定编程经验的开发者,本文都将为您提供有关sleep函数的全面解析和实用技巧,助您成为更高效、更出色的C语言程序员。让我们一同进入C语言的延时世界,探索sleep函数的神奇魅力。

📌C语言sleep函数 

语言中的 sleep 函数可以让当前线程暂停执行一段时间,通常用于模拟实际运行环境下的等待或延时操作。在 Windows 和 Linux 等主流操作系统中,sleep 函数的实现方式略有不同,但其基本原理都是通过让线程进入睡眠状态来实现等待或延时的效果。

 sleep 函数的基本语法: 

unsigned int sleep(unsigned int seconds);

示例 

#include<stdio.h>
#include<windows.h>
int main()
{int a=100;Sleep(3000);// 滞停3s打印aprintf("%d",a);return 0;
}

运行结果: 

sleep函数示例

注意 

需要注意的是,sleep 函数的参数类型为 unsigned int,而不是浮点数类型。如果需要暂停小于 1 秒的时间,可以使用 usleep 函数,它的参数类型为微秒(unsigned int),可以精确地控制线程的等待时间。 

❗️在VC中使用带上头文件#include <windows.h>,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include <unistd.h> 

❗️在VC中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep

❗️在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是,而不是毫秒。

下面我们通过一个实例来输入了解sleep()函数。

📌实例

编写代码,演示多个字符从两端移动,向中间汇聚。

实现思路:定义两个字符数组,将要移动的字符数组元素赋值给另一个数组元素,实现多个字符从两端像中间汇聚。

不使用sleep函数的效果(while循环实现)

代码展示:

//编写代码,演示多个字符从两端移动,向中间汇聚。
#include <stdio.h>
#include <windows.h>
int main()
{char arr1[] = "How are you?";char arr2[] = "############";int left = 0;int right = strlen(arr1) - 1;printf("%s\n\n", arr2);//while循环实现while (left <= right){arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;printf("%s\n", arr2);}return 0;
}

运行结果: 

不使用sleep函数实例

 

使用sleep函数的效果(while循环实现)

代码展示:

//编写代码,演示多个字符从两端移动,向中间汇聚。
#include <stdio.h>
#include <windows.h>
int main()
{char arr1[] = "How are you?";char arr2[] = "############";int left = 0;int right = strlen(arr1) - 1;printf("%s\n\n", arr2);//while循环实现while (left <= right){Sleep(1000);//增加这条语句,实现滞停1秒arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;printf("%s\n", arr2);}return 0;
}

运行结果: 

使用sleep函数实例

 

总结:

上面两个代码的运行结果是相同的,但第一个代码打印结果是一瞬间的,而第二个代码打印结果则是有时间间隔的,给人一种在逐步打印结果的感觉,也展示了多个字符从两端移动,向中间汇聚的整体过程。

for循环实现

代码展示:

//编写代码,演示多个字符从两端移动,向中间汇聚。
#include <stdio.h>
#include <windows.h>
int main()
{char arr1[] = "How are you?";char arr2[] = "############";int left = 0;int right = strlen(arr1) - 1;printf("%s\n\n", arr2);//for循环实现for (left = 0, right = strlen(arr1) - 1;left <= right;left++, right--){Sleep(1000);//滞停一秒arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);}return 0;
}

运行结果: 

for循环实现sleep函数实例

while语句与for语句的转换:

🔥好了今天的分享就到这里,感谢大家的阅读与支持,期待与您在下一篇文章中再次相会。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28202.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

群雄逐鹿,全球 “电竞之都”将花落谁家?

提到深圳&#xff0c;你会想到什么&#xff1f; 四十多年前的小渔村、改革开放排头兵&#xff0c;还是由科技驱动的经济特区&#xff1f; 这些头衔都已经司空见惯了&#xff0c;接下来深圳预计还将有个最新名号——国际电竞之都&#xff0c;这是一个让无数年轻人听到就会兴奋…

虚拟机ubuntu1804打开联合标定工具箱的步骤(toolkit)

1、运行roscore roscore 2、进入到calibration文件夹打开终端 source devel/setup.bash3、运行rosrun打开即可 rosrun calibration_camera_lidar calibration_toolkit

二层交换机和三层交换机区别

一、指代不同 1、两层交换机&#xff1a;工作于OSI模型的第2层&#xff08;数据链路层&#xff09;&#xff0c;故而称为二层交换机。 2、三层交换机&#xff1a;具有部分路由器功能的交换机&#xff0c;工作在OSI网络标准模型的第三层。 二、功能不同 1、两层交换机&#xff1…

远程办公保持高效的15个小技巧

远程办公提供了在固定办公可能无法体验到的多种自由。灵活的时间安排&#xff0c;只要你完成当天的工作&#xff0c;其它时间你可以任意安排。没有通勤压力&#xff0c;不用挤公交或地铁&#xff0c;省了交通费&#xff0c;还有让你睡个懒觉&#xff0c;有时间做更健康的早餐&a…

【网络编程】传输层协议——TCP协议

文章目录 一、TCP协议格式1.1 TCP如何将报头与有效载荷进行分离&#xff1f;1.2 有效载荷如何向上交付&#xff1f;1.3 TCP报头的理解1.4 序号与确认序号1.4.1 网络不可靠问题1.4.2 32位序号1.4.2 32位确认序号 1.5 窗口大小1.6 六个标志位 二、确认应答机制&#xff08;ACK&am…

从Vue2到Vue3【零】——Vue3简介

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介及创建 文章目录 系列文章目录前言一、Vue3的发布带来了什么1.1 性能提升1.2 源码升级1.3 支持TypeScript1.4 新特性1.5 支持 vue3 的UI组件库 二、创建Vue3.0工程2.1 什么是Vite2.2 利用Vite创建Vue3.0工程2.3 利用vue-cli脚…

C++中main()函数和命令行参数介绍

C中main()函数和命令行参数介绍 在C中&#xff0c;main()函数是程序的入口点&#xff0c;它是一个特殊的函数&#xff0c;在程序开始执行时被首先调用&#xff0c;也是程序结束时的最后一个被执行的函数。main() 函数的类型始终为 int&#xff0c;根据C标准&#xff0c;main() …

深度学习trick

本次Tricks主要面向于深度学习中计算机视觉方向的研究&#xff0c;分为数据增广方法、训练技巧&#xff0c;参数调节这三个方面进行深入的分析。内容有一部分是基于openmmlab的mmdet和mmseg两个框架上的成熟应用案例进行详细阐述。 首先是数据增广的tricks&#xff1a; 0、Fli…

概率论的学习和整理18:为什么 P(至少成功1次) = Σ P(几何分布) ,总结几何分布和连续失败概率的关系,二项分布和累计成功k次的关系

目录 1 先说结论&#xff1a; 2 Σ几何分布的P(xn) P(n次试验至少成功1次) 2.1 几何分布的概率 2.2 这个是可以证明的&#xff0c;下面是推导过程 2.3 怎么理解呢&#xff1f; 3 另外&#xff0c;P(累计成功k次) ΣP(成功k次的二项分布) 3.1 成功k次的概率 和 累计成…

【NLP】transformers的位置编码

一、背景 本文是“实现的变压器”系列的第二篇。它从头开始引入位置编码。然后,它

《3.linux应用编程和网络编程-第9部分-3.9.linux网络编程实践》3.9.6_7.soekct实践编程1_2

概念&#xff1a;端口号&#xff0c;实质就是一个数字编号&#xff0c;用来在我们一台主机中&#xff08;主机的操作系统中&#xff09;唯一的标识一个能上网的进程。端口号和IP地址一起会被打包到当前进程发出或者接收到的每一个数据包中。每一个数据包将来在网络上传递的时候…

Ubuntu学习笔记(二)——文件属性与权限

文章目录 前言一、用户与用户组1.用户&#xff08;文件拥有者&#xff09;2.用户组3.其他人 二、Linux用户身份与用户组记录文件1. /etc/passwd2. /etc/shadow3. /etc/group 三、文件属性与权限1. 查看文件属性的方法&#xff08;ls&#xff09;2.文件属性详细介绍2.1 权限2.2 …