getchar()的使用
来源:互联网 发布:windows 10中文包 编辑:程序博客网 时间:2024/05/22 07:53
在使用getchar()时,常常会因为获取了换行符而影响了程序的运行。
比如说:当你输入一个字符w,然后enter,在第一次使用getchar时,会正确获取到w字符;紧接着再一次使用getchar时,获取的字符是‘\n’;如下面程序:
#include <stdio.h>#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {char c;c=getchar();printf("c is : %c\n",c); c=getchar();if(c=='\n'){printf("c is : %c\n",c); }return 0;}
运行结果如下:
若想排除换行符,可以在第一次使用getchar后,添加一下代码:
while(ch=='\n'){ ch=getchar()}
这样就可以除去‘\n’的干扰了,后面就可以正常使用getchar这个函数了。
下文参考别人的解释:
因为我们输入的字符串并不是取了第一个字符就把剩下的字符串丢掉了,它还在我们的内存中,就好比,开闸放水,我们把水放到闸里去以后,开一次闸就放掉一点,开一次就放掉一点,直到放光了为止,这里开闸动作就相当于调用一次getchar()。我们输入的字符串也是这么一回事,首先我们输入的字符串是放在内存的缓冲区中的,我们调用一次getchar()就把缓冲区中里出口最近的一个字符输出,也就是最前面的一个字符输出,输出后,就把它释放掉了,但后面还有字符串,所以我们就用循环把最前面的一个字符一个个的在内存中释放例子中循环条件里的'\n'实际上就是你输入字符串后的回车符,所以意思就是说,直到遇到回车符才结束循环,而getchar()函数就是等待输入(或缓冲区中的数据)直到按回车才结束,所以实现了整个字符串的输出。
0 0
- getchar使用的几个问题
- scanf、getchar的使用
- getchar() putch()的使用
- getchar()的使用
- getchar的使用
- getchar()的灵活使用
- getchar()的使用
- getchar()与putchar()的简单使用
- C中的getchar()函数的使用总结
- C中的getchar()函数的使用总结
- C中的getchar()函数的使用总结
- 山东省赛Identifiers 之getchar()的使用
- 编程中getchar()的灵活使用
- C语言 getchar(),putchar()函数的使用
- scanf()和getchar() 使用
- getchar 函数使用注意事项
- scanf();getchar();gets()使用
- scanf()和getchar() 使用
- js代码中的 函数中的“:”冒号有什么作用
- oracle数据库多个实例配置
- poi导出Excel中图片的设置
- maven 依赖包形态
- 加速devstack部署过程
- getchar()的使用
- 加速Android Studio/Gradle构建
- 类似jquery源码jsonp跨域处理
- Android studio编译报错 报非法字符 \65279
- CentOS卸载OpenJDK并安装Sun JDK
- FreeStyler 序列文件分析
- mvc页面中,显示自定义时间格式
- android studio遇到的问题
- [个人收藏]iOS HOOK 注入与重签名