gcc中scanf的使用及返回值问题
来源:互联网 发布:php开源电商系统源码 编辑:程序博客网 时间:2024/05/19 12:28
今天在实现输入一组数字,以空格为间隔时对scanf的功能及返回值产生了疑问,所以自己实验了一下,现分享下实验结果
int main(){ int k, v; k = scanf("%d", &v); printf("k = %d\n", k); printf("v = %d\n", v);}
直接输入空格
、回车
都不会从scanf中返回(不知道还有没有其他符号有相同情况),会继续等待输入,而输入数字
时k = 1
;输入字母
等字符
时k = 0
,且v
值无变化。
那么当输入不匹配时,缓冲区里的数据是否丢弃了呢?
int main(){ int i, k, v; i = 0; while(i < 2){ k = scanf("%d", &v); printf("k = %d\n", k); printf("v = %d\n", v); i++; }}
实验发现,不匹配的字符不会从缓冲区丢弃,而会继续匹配下一次输入。若想跳过缓冲区的字符,可以用scanf("%*c")
匹配。
补充代码:输入一串数字,以空格(数量任意)间隔,可以过滤其他字符。
int main(){ int i, n, k, v, a[MAX]; char c; i = 0; while(1){ k = scanf("%d", &v); c = getchar(); if(k == 1){ a[i] = v; i ++; } else if(k == 0){ scanf("%*c"); } if(c == '\n'){ break; } } n = i; for(i = 0; i < n; i++){ printf("%d ",a[i]); }}
阅读全文
1 0
- gcc中scanf的使用及返回值问题
- scanf的返回值问题以及ungetc()的使用
- C语言中scanf()和printf()的返回值问题
- C中scanf()返回值问题
- SCANF返回值问题
- scanf返回值问题
- scanf函数的返回值问题
- scanf用法及scanf中有\n的问题
- scanf用法及scanf中有\n的问题
- gcc中使用scanf的一个小陷阱
- scanf的返回值
- scanf的返回值
- scanf的返回值
- scanf的返回值
- while()的一些基础知识与用法,及scanf返回值问题。(新人求罩^_^)
- scanf函数返回值问题
- C语言中关于scanf()函数返回值问题
- C语言scanf()函数返回值的问题
- 使用CAsyncSocket类进行网络编程
- 使用Python模拟登录知乎
- 数据库系统概念 读书笔记(二)
- MFC消息映射BEGIN_MESSAGE_MAP详解
- java虚拟机---类加载机制
- gcc中scanf的使用及返回值问题
- Oracle+VS2015+C++使用记录
- 循环链表
- webpack前段构建性能优化策略小结
- [VC]setsockopt 设置socket 详细用法(超时、非阻塞等)
- 阿里云数加Max Compute的Java Map Reduce程序读取文本资源及其命令行和IDE运行配置
- 关于手机上不能用window.close的问题
- linux使用命名
- [Command] Linux 进程管理