程序设计基础 scanf详解
2017-12-31 22:36
302 查看
scanf的作用是从缓冲区中按格式字符串的格式,读入相应的内容,按后面的参数表放到相应的地方。scanf的格式控制的一般形式为:%[*][宽度][F|N][h|l]类型字符,方括号内的含义都是可选项,类型字符的含义是编译器对对应信息的处理方式,1看成char型,然后传给int变量的话,只会覆盖其最低的一字节。
缓冲区buffer存放待操作的信息,%c因为要读入所有的char型数据,包括空白字符(空格,tab,回车),所以它是即时读取的,而%d等,%s等都是以空白字符为读取信号,每输入了一个空白字符,就将缓冲区中的数据向scanf中输送一次。
若非空白字符与模式字符串不匹配,则在此处结束scanf函数(这个未成功匹配的字符将留在缓冲区)
模式字符串中的空白字符作用是读掉所有缓冲区中的空白字符(也可以没有)。如scanf("[^\n]\n");这种放在末尾的\n必须要再输入一些其他字符,才可以判断出该结束了。
星号的作用:在%c,%d之间加上星号,表示从缓冲区里按该种类型读取一个内容,但是不输入到特定的某处,%[^\n]%*c可以用来读一个句子,同时读掉缓冲区里剩下的那个回车
另外,避免读char型数据读到回车,最好的办法是scanf(" %c",&c);理由如上
缓冲区buffer存放待操作的信息,%c因为要读入所有的char型数据,包括空白字符(空格,tab,回车),所以它是即时读取的,而%d等,%s等都是以空白字符为读取信号,每输入了一个空白字符,就将缓冲区中的数据向scanf中输送一次。
若非空白字符与模式字符串不匹配,则在此处结束scanf函数(这个未成功匹配的字符将留在缓冲区)
模式字符串中的空白字符作用是读掉所有缓冲区中的空白字符(也可以没有)。如scanf("[^\n]\n");这种放在末尾的\n必须要再输入一些其他字符,才可以判断出该结束了。
星号的作用:在%c,%d之间加上星号,表示从缓冲区里按该种类型读取一个内容,但是不输入到特定的某处,%[^\n]%*c可以用来读一个句子,同时读掉缓冲区里剩下的那个回车
另外,避免读char型数据读到回车,最好的办法是scanf(" %c",&c);理由如上
相关文章推荐
- 【程序设计基础_C语言】北理工的恶龙
- 【Java基础】开发中的23种设计模式详解
- 程序设计基础 C(笔记)
- java程序员菜鸟进阶(四)oracle基础详解(四)oracle开启和关闭服务程序——解决安装oracle占用大量内存
- 【编程基础】程序设计中的“分层思想”
- 总结:程序设计基础
- 总结:程序设计基础
- 程序设计基础
- 程序设计基础及数据结构基础
- Linux设备驱动开发详解-Note(4)---驱动设计的硬件基础(2)
- UI设计编程:基础视图、程序启动流程
- C02-程序设计基础提高班(C++)第13周上机任务-多态与虚函数
- AVR_GCC程序设计基础
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Hibernate_配置详解>(三十六)
- 80386ASM程序设计基础(二)
- 吴文虎_程序设计基础_清华大学视频教程
- Linux程序设计--shell程序设计基础(一)
- java程序员菜鸟进阶(四)oracle基础详解(四)oracle开启和关闭服务程序――解决安装oracle占用大量内存
- [Java基础巩固](0) --- 程序设计基础和基本数据结构, 算法
- T-sql 程序设计基础(五)