啊哈磊_编程从这里起步

标题: 总有新同学问 Sleep(1000); 和system("pause");和getchar();的区别 [打印本页]

作者: 啊哈磊    时间: 2014-3-8 13:48
标题: 总有新同学问 Sleep(1000); 和system("pause");和getchar();的区别
Sleep(3000); 是等待3秒。(需要再顶部添加#include <windows.h>
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.     printf("Cyuyan! ");
  7.     Sleep(3000);
  8.     return 0;
  9. }
复制代码


system("pause");就是暂停直到你输入任意一个字符结束
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     printf("Cyuyan! ");
  6.     system("pause");
  7.     return 0;
  8. }
复制代码



getchar();getchar();
本质上等待读入两个字符,也可以起到暂停的作用,但是别人本质上不是用来暂停程序的。这里做了一个假象,等待读入字符。
那为什么一个getchar();不行呢。其实也不是都不行。如果程序没有屏幕输入的话,一个getchar();也可以。但是往往程序都有输入。而我们在输入的时候通常需要敲一个回车来接受输入,第一个getchar();就把回车个读掉了,因此需要第二getchar();来假装还需要读入一个字符,来起到暂停的效果。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     printf("Cyuyan! ");
  6.     getchar();getchar();
  7.     return 0;
  8. }
复制代码








作者: 4399APPLE    时间: 2014-3-8 14:30
EN                  
作者: 超神级    时间: 2014-3-8 18:02
Sleep()很多童鞋被他坑了。此贴很有价值,
作者: 李掌柜    时间: 2014-3-9 11:42

作者: 葛奕成    时间: 2014-3-11 21:55
好!!!
作者: dyx811    时间: 2014-3-21 16:43
有两本教程,有此问题,原来如此!
作者: winkill    时间: 2014-4-3 22:59
学习了


-----小尾巴,只为字数而生,谅解
作者: 4399APPLE    时间: 2014-4-26 07:36
winkill 发表于 2014-4-3 22:59
学习了

额                  
作者: 嗨,强哥!    时间: 2014-7-22 07:54
两个getchar () 很好的说明了输入流问题。。。
作者: 打不流溪    时间: 2016-1-15 17:05





欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2