C语言分支与循环(17)--- goto语句介绍以及system()函数运用
  uUWKQE7Avyk4 2023年11月02日 34 0

一.goto语句的概念

C语言中提供了可以随意滥用的goto语句和标记跳转的符号

理论上goto语句是没有必要的,没有goto语句也可以写出代码

但是在某种场合下goto语句是有用武之地的,最常见的用法是在终止程序在某些深度嵌套的结构的处理过程,如一次跳出多个循环,这种情况下break语句就无法达到目的,因为break语句只能从最内层循环跳转到上一层循环中

如以下代码:

#include<stdio.h>
int main(void){
here:
	printf("hello my friend\n");
	goto here;
	return 0;
}

我们编译并运行上述代码后会发现,程序一直在输出 hello my friend 这是因为我们在一开始给定了一个here的标签,当执行完成printf()函数后程序会执行goto语句,这时候程序就会自动跳转到here标签处再次执行,所以这就导致了程序死循环输出 hello my friend 字样,如图所示:

C语言分支与循环(17)--- goto语句介绍以及system()函数运用_system函数

所以使用goto语句可能导致程序的执行顺序被打乱,所以我们应该尽量避免滥用goto语句,只有当需要使用的时候才应该使用

二.system()函数的使用

我们接下来编写一个关机的小程序

在Windows环境下,我们可以同时按住win键(徽标键)+R 调出运行,然后在运行栏中输出cmd,这样可以调出我们的命令提示符程序,然后输入 shutdown -s -t 120 在输入命令的时候需要注意 -s -t 120 这三个参数前面都要有空格,如果命令输入正确我们的电脑就会在2分钟后关机,这里我大概介绍一下这条命令的意思 shutdown 是系统的一个程序 -s 是代表关机(-r是重启,-a代表取消关机)-t 代表的是秒数,后面需要跟上具体的数字(单位:秒)说完shutdown程序,我们再来看一下system()函数,system()函数可以理解为一个cmd程序,将你想要执行的命令输入到system()函数中即可,如:

system("shutdown -s -t 120");

其作用和cmd差不多,system()函数被包含在头文件 windows.h 中所以使用该函数之前需要进行预处理指令 #inlcude<windows.h>  ,如图所示:

C语言分支与循环(17)--- goto语句介绍以及system()函数运用_goto语句_02

若我们需要取消关机则可以调用system()函数,传入 shutdown -a 语句,如:

system("shutdown -a");

则可以取消关机,如图所示:

C语言分支与循环(17)--- goto语句介绍以及system()函数运用_goto语句_03

                                                                                                                     2023/8/4

                                                                                                                           王起舟

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  DF5J4hb0hcmT   2023年11月19日   32   0   0 cmd
  DF5J4hb0hcmT   2023年11月19日   26   0   0 cmd
  DF5J4hb0hcmT   2023年11月19日   18   0   0 treecmd
  DF5J4hb0hcmT   2023年11月19日   27   0   0 cmd
  DF5J4hb0hcmT   2023年11月19日   13   0   0 netstatcmd
  DF5J4hb0hcmT   2023年11月14日   23   0   0 cmd
  DF5J4hb0hcmT   2023年11月19日   30   0   0 cmd
  DF5J4hb0hcmT   2023年11月19日   22   0   0 arpcmdtracert
uUWKQE7Avyk4