以下内容全部来自Bay(百度百科)

scanf的返回值

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。

如:

scanf("%d%d", &a, &b);

如果a和b都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果a和b都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOF

且返回值为int型

空白符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。

非空白符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

使用scanf函数时应该注意的问题

(1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

(3) scanf()函数中没有精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

(4) scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scanf("%d",&a);是合法的。

(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

(7) 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

getchar

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回 车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字 符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续 getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按 键.

getch

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关 的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行

gets

功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。

最新文章

  1. 【转】linux内核中writesb(), writesw(), writesl() 宏函数
  2. .net学习之进程外Session的配置
  3. DWR基本配置
  4. slowhttps安装及使用心得
  5. MemCacheManager
  6. NGUI panel使用soft clip时,屏幕缩放后无法正常工作的问题解决
  7. 机器学习:Python实现单层Rosenblatt感知器
  8. 使用Git的hook实现代码的自动部署
  9. 单元测试过多,导致The configured user limit (128) on the number of inotify instances has been reached.
  10. bzoj2006 [NOI2010]超级钢琴 (及其拓展)
  11. 在线生成透明ICO图标神器
  12. scrapy框架Selector提取数据
  13. Centos的升级与更新
  14. silverlight 父窗体传值给ChildWindow
  15. from * import *(ImportError: No module named *)为什么报错没有这个目录
  16. JavaScript eval_r() 函数
  17. (转)CentOS7使用ACL精确控制文件和目录的访问权限
  18. ZigBee 学习资源
  19. 解析Java对象的equals()和hashCode()的使用
  20. SQL Server 的索引结构实例

热门文章

  1. Vue养成之路
  2. vuex获取数据
  3. sqlmap之--os-shell命令执行原理
  4. 若依(ruoyi)代码生成树表结构的那些坑
  5. 输出前 n 个Fibonacci数
  6. 【Java】简单了解网络编程
  7. MATLAB中拟合算法刚入门
  8. gin中的重定向
  9. 【程序18】求s=a+aa+aaa+aaaa+aa...a的值
  10. Python学习笔记之读取文件、OS模块、异常处理、with as语法示例