scanf和printf的另类用法
2015-06-16 00:50
295 查看
scanf不仅仅可以输入内容还可以清楚内存区的缓存问题 int n,m; char c; 如 scanf( “%d %d”,&n, &m ); scanf("%c",&c); 当输入 12 13 回车 c 把回车取走了 但是我们本意不是这样的 这就隐身出来缓存问题 因为scanf 不能带走回车 回车会在输入缓存中 c 在缓存中想读取一个字符 刚好就把回车读取了 怎样避免这些呢 可以这样scanf(" %c",&c);在%c前面加上空格 作用就是丢弃不可显示的字符 或者加入getchar()读取回车 当想清理缓存中的内容的时候可以使用scanf函数 scanf("%*[^\n]"); scanf("%*c"); 测试代码如下 int main( void ) { int n; int m; char test; scanf("%d%d",&n,&m); scanf("%*[^\n]"); scanf("%*c"); scanf("%c",&test); scanf("%*[^\n]"); scanf("%*c"); printf("n=%d m=%d test=%c\n",n,m,test); printf("------------------------\n"); char ab; printf("1234\n"); scanf("%c",&ab); printf("%c\n",ab); return 0; } printf函数 char ab; printf(“123\n”); scanf("%c",&ab); 因为printf()会都走\n 所以程序会等待用户输入ab的值 printf函数的在此理解 当printf函数遇到什么情况的时候回会输出内容 1 遇到\n 如printf("\n"); 会把缓存的内容输出来 2 当缓存区满的时候 3 当刷新缓存区的时候如 fflush(stdout) 4 当程序结束的时候 5 遇到输入内容的时候 测试代码 int main( void ) { /* printf("123"); sleep(10); */ /* printf("123"); fflush(stdout); sleep(10); */ /* printf("123"); getchar(); */ return 0; }
相关文章推荐
- Java Logging: Log Levels
- Spring找不到方法:The method getDispatcherType() is undefined for the type HttpServletRequest
- 数字逻辑第六章作业完善版
- Java Logging: Logger Hierarchy
- K-means算法
- main函数参数详解
- Unity CG 写一个超酷的 ray-marching(shader纯代码写3D)
- 应该要对学习进行整理记录了
- 数字逻辑作业(第六章)
- 免费的编程中文书籍索引
- Keep-Alive模式
- C++ Dog类
- 2015061510 - 枚举
- Java Logging: Logger
- 深入学习横竖屏切换时候Activity的生命周期
- 深入学习横竖屏切换时候Activity的生命周期 2015-06-16 00:38 13人阅读 评论(0) 收藏
- 6月15日所得所感
- Notifications 通知
- 开始写第一个android软件(聊天软件)
- 2015年下半年信息系统项目管理师课程安排表