现在的位置: 首页 > 综合 > 正文

C学习第一章tips

2018年02月19日 ⁄ 综合 ⁄ 共 765字 ⁄ 字号 评论关闭

使用VS编写程序时,希望得到的程序能够按任意键退出,而不是一闪而过,方便观察输出结果。

实现方法:

(1)使用库函数getch()

添加代码:#include <conio.h>和getch()语句。

解释:getch()函数被调用后,等待用户输入一个字符,得到后立即结束并返回该字符。

(2)使用库函数system()

添加代码:#include<stdlib.h>和语句system("pause");

解释:system()是让终端执行一条shell(在windows中就是dos)命令,上面那句话就是指示dos命令执行命令:pause.它的作用与上基本相同,除了显示了“按任意键继续”字符串。可以通过在cmd 中输入pause ,查看效果。



控制输入问题。

第一:注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题。 

读取字符时:

scanf()以space、enter、tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中)。

getchar()Enter结束输入,也不会舍弃最后的回车符;以EOF作为退出getchar()的条件时,注意使用ctrl+z后输入回车符退出。特别注意许多微型计算机系统将一行的开始位置键入的ctrl+z
识别为文件尾信号,还有一些则把任意位置的ctrl+z解释为文件尾信号。

读取字符串时:

scanf()SpaceEnterTab结束一次输入

gets()Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符!利用

 第二:为了避免出现上述问题,必须要清空缓冲区的残留数据,可以用以下的方法解决:

方法1使用C语言里提供的函数fflush(stdin),清空缓冲区,只要在读数据之前先清空缓冲区就没问题了。

方法2:自己取出缓冲区里的残留数据。scanf("%[^/n]",string)


抱歉!评论已关闭.