system(“pause”)和getchar()
大家都知道system(“PAUSE”)可以让C程序在运行结束之前暂停运行。用system(“PAUSE”)可以解决运行程序一闪而过,看不到输出结果的问题。有程序员会用system(“PAUSE”)只是为了能够让程序暂停,以便看到运行的结果。这就好比用大炮打蚊子杀鸡用牛刀。那么system(“PAUSE”)语句究竟怎么运行呢?
下面是关于system(“PAUSE”)的一些观点:
1.平台相关性。system(“PAUSE”)只限于有PAUSE系统命令的操作系统。像DOS系统或者Windows系统。但是在Linux或其他系统却不能,因此不具有可移植性。
2.资源消耗大。虽然可以起到暂停程序的效果,但是在这过程中,程序却占用了大量资源。 那么system()的运行过程是怎么样呢?
(1)暂停程序
(2)调用操作系统内核
(3)打开一个系统子程序
(4)查找系统命令PAUSE
(5)分配内存给PAUSE命令,并执行
(6)等待键盘输入
(7)释放PAUSE内存
(8)退出操作系统
(9)返回程序
3.为了执行system(“PAUSE”),需要加入stdlib.h,造成程序冗余。
解决方法:可以用getchar()或者 std::cin.get代替system(“PAUSE”) 。
system(“pause”)和getchar()的更多相关文章
- 解决C/C++程序执行一闪而过的方法(使用getchar,或者cin.get,不推荐system(“pause”))
简述 在VS编写控制台程序的时候,包括使用其他IDE(Visual C++)编写C/C++程序,经常会看到程序的执行结果一闪而过,要解决这个问题,可以在代码的最后加上system(“pause”).g ...
- c++中system("pause")的作用和含义
简单来说就是暂停的意思,一般在LINUX编程时会用到,等待接收信号,才会重新运行 . 在进行C/C++编程的时候,在运行程序查看输出效果时,会出现窗口闪一下就关闭的情况. 在C语言中一般通过添加get ...
- about system (pause) in cpp
Which is best way to pause the console in C++ programs? using cin.get() or using system("pause& ...
- while(1)和system("pause")区别
我们在调试时,有时候会用到这两个语句. 1.显而易见,第一个是一个循环函数,占cpu.占内存: 2.system("pause")是一个系统调用,占内存,不占cpu;这个开销还是有 ...
- 枚举系统磁盘驱动器(使用GetLogicalDriveStrings API函数,system("pause"); 很实用,还用到wcslen等函数)
代码如下: #include "stdafx.h" #include <vector> #include <string> #include <Win ...
- ubuntu下vscode认识 system("pause")的解决办法
linux下运行c++程序时,希望控制台不会输出后马上消失. 在windows系统下,用如下语句: #include <cstdlib> system("pause") ...
- sublime C++ build system配置体验
近期准备实习,于是终于步入了sublime的阵营,sublime确实性感. 在配置win7下C++编译运行集成环境的时候遇到点问题,于是接触了一下JSON格式,最后终于自己搞定了.. 参考文档:htt ...
- windos命令行下的程序编写
1.命令行下写程序. 写程序一定要用IDE?不,我还可以用记事本呢.呵呵,写程序一定要用记事本?? ———————————————— 命令行下输入copy con test.txt后回车可在相应目录下 ...
- 解决C/C++程序执行一闪而过的方法(三种办法)
简述 在VS编写控制台程序的时候,包括使用其他IDE(Visual C++)编写C/C++程序,经常会看到程序的执行结果一闪而过,要解决这个问题,可以在代码的最后加上system(“pause”).g ...
- 窗口迅速关闭的解决办法/scanf/if/for/break
break if的格式 if(a>b) { printf("max=%d\n",a); } else printf("max=%d\n",b); scan ...
随机推荐
- viewState详解
作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对 ViewState的一些错误认识.为了达到这个目的,我决定从头到尾详细的描述一下整 ...
- ElasticSearchserver操作命令
在win7环境,进入elasticsearch安装文件夹的bin文件夹: 1. elasticsearch.bat 就能够启动elasticsearch了.执行这个插件的优点是:elasticsear ...
- Tomcat服务器改主页 & jeesite框架改首页
Tomcat服务器改主页: 方法一: 把原来的 ROOT 目录清空: 发布你自己的项目到 ROOT 目录下: 发布程序 /webapps/ROOT/WEB-INF/web.xml 中需要有默认首页定义 ...
- shiro框架的使用
1.配置二级缓存 <ehcache updateCheck="false" name="shiroCache"> <defaultCache ...
- sublime 实用快捷键
Command+Enter 在下一行插入新行.举个栗子:即使光标不在行尾,也能快速向下插入一行. Command+Shift+Enter 在上一行插入新行.举个栗子:即使光标不在行首,也能快速向上插入 ...
- MySQL-怎样使update操作sleep一段时间
)) a on mytest.id=a.id set mytest.name='xiaowang';
- MVC入门——增
创建数据库表如下: 生成EF模型 //------------------------------------------------------------------------------ // ...
- Html.DropDownListFor的选项值为字符型问题
我快要疯了.asp.net mvc的这个DropDownListFor,无论在服务器端如何设置,设置哪个值被选中,结果到了页面输出,选中值根本没有被选中,没有任何一个值被选中,下拉框只冷冰冰地显示一个 ...
- wince c# 创建桌面快捷方式 自动启动 只运行一次 全屏显示
using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.R ...
- 九度OJ 1116:加减乘除 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1466 解决:902 题目描述: 根据输入的运算符对输入的整数进行简单的整数运算. 运算符只会是加+.减-.乘*.除/.求余%.阶乘!六个运 ...