scanf、getchar、gets
来源:互联网 发布:c语言实现http请求 编辑:程序博客网 时间:2024/05/22 05:39
C语言中基本输入主要有三个函数:scanf、getchar、gets。
首先他们的输入都是基于缓冲区的,字符被放入缓冲区,然后输入函数去取,取的时候就有区别了,关键是对空格和回车符的处理不大一样。
int main(){ char a,b; scanf("%c",&a); scanf("%c",&b); printf("%d %d",a,b); return 0;}
这个程序执行输入a 后按回车的话程序会即刻结束输出97 ,10,第二个scanf不会执行,因为输入函数是从缓冲区去取,而scanf对回车符的处理是不会清除,所以下一个scanf就接收到了这个回车符,这里10就是回车符的ascii码。
但是接收字符串的时候,scanf函数又会清除回车符。
当需要接收hello world 这两个单词的时候,需要考虑中间的空格,因为scanf函数结束的标志是空格、回车、缩进符。scanf会遇到空格结束,所以只能接收到hello,这里可以用gets函数,它可以接收空格,以回车符结束,并且会舍弃最后的回车符!
getchar是以回车符结束,我试了一下getchar是接收缓冲区第一个字符,包括空格和回车符。
这也就是有时候用getchar()来暂停函数的时候它直接运行过去了并没有暂停的效果,这可能就是缓冲区里残留的回车符导致的。
C语言里提供了函数清空缓冲区,只要在读数据之前先清空缓冲区就没问题了!
这个函数是fflush(stdin)。
阅读全文
0 0
- scanf getchar gets
- scanf();getchar();gets()使用
- scanf()、getchar()、gets()比较
- 关于getchar()、scanf()、gets()
- scanf() gets() getchar()
- scanf();getchar();gets()使用
- getchar(),gets,scanf用法
- scanf、getchar、gets
- cin ,getchar,gets,scanf区别
- scanf、getchar、gets的比较
- scanf()、gets()、getchar()的区别
- scanf、getchar、gets的比较
- scanf getchar gets 的区别
- scanf/getchar/gets/cin区别
- 区别cin,scanf,gets,getchar
- scanf()、getch()、getchar()、getc()、gets()
- scanf,getchar,gets,cin用法
- 对比scanf()、getchar()和gets()
- 入门 Webpack,看这篇就够了
- 作业Week3 "Stopwatch: The Game"
- Elasticsearch 架构原理
- Ubuntu命令(不断更新之中)
- C++实现日期类
- scanf、getchar、gets
- Elasticsearch索引原理
- PHP命名规则
- 1Z0-052-001
- Java设计模式——装饰者模式(Decorator Pattern)
- 欢迎使用CSDN-markdown编辑器
- elasticsearch 索引存储深入详解
- 【20170925】JAVA每日一练
- C++11 新知识点