scanf()的学习记录

  空白字符(空格,制表符,换行符)

一.转换说明符

  1. %c 把输入解释成一个字符

  2. %e,%f,%g,%a,大写也行 把输入解释成一个浮点数

  3. %i  解释成一个有符号的十进制

  4. %o 有符号的八进制

  5. %x 有符号的十六进制

  6. %p 解释成一个指针

  7. %u 无符号的十进制数

二.修饰符(详见C primer plus 第五版 79页

  1. 延后赋值 例子请看C primer plus 第五版 81页 例题 4.16

 三.scanf()的输入原理(详见C primer plus 第五版 79页)

 1.非格式转换符要求的非空白字符,scanf()会舍弃,不会赋给任何变量,该舍弃的放回输入,等下一次scanf()再来读取 这里其实是一个死循环了,在以后有无限个scanf()的前提下,因为在超过格式转换符要求的格式后,回车键会结束scanf(),开始执行以后的语句

 2.scanf()在带有多个格式转换符中,ANSI 规定在第一个出错的地方停止读取输入

 3.而使用%s说明符,空白字符以外的所有字符都可以接受,所以是跳过空白字符,读取非空白字符后,保存再次遇到空白字符之前的内容

 4.%c 则所用字符都平等

 5.scanf()函数允许把普通字符放在格式字符串中,出了空格(不管多少个空格,换行符在输入时都是可以的,就算没有空格也可以)以外的普通字符,一定要与输入字符串匹配。例子 80页

 6.scanf()也有返回值判断 81页没有成功读取,返回一个负数,读取到文件结尾(end of file )返回EOF

你可能感兴趣的:(scanf()的学习记录)