当前位置:首页 » 文件管理 » 程序设计字符读入缓存区

程序设计字符读入缓存区

发布时间: 2023-01-31 18:33:13

A. 4.编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数

#include

int
main()
{char
c1,c2;
c1=getchar();
putchar(c1);
scanf("%c",&c2);
printf("%c\n",c2);
return
0;
}
我们平时从键盘输入的字符都会存到缓存区里面,包括回车字符,getchar是从缓存区读入一个字符,用法是ch=getchar();
scanf并不针对于单个的字符处理,还可以读入数据和字符串,且scanf("%c",&ch)等价于ch=getchar();
至于putchar(ch)则等价于printf("%c",ch);功能是输出一个字符,要输出的字符变量写在括号内,如果要输出的是字符常量比如说感叹号则要这样:putchar('!');或printf("!");或printf("%c",'!');都相同。

B. 关于C语言的问题~ C语言程序设计(第四版)里说,在用键盘输入信息时,这些字符先暂存在键盘的缓冲

用来接受回车的是ch, 它是一个变量不是数组, 而用来保存文件名的是一个字符数组.
C语言几乎所有输入的函数都是先检查输入缓冲区是否为空, 如果空, 就让键盘输入, 输入的字符如果是回车符, 就结束输入, 然后输入的数据保存到输入缓冲区(就包括那个回车符), 最后再从缓冲区中读数据, 其中如果遇到非法字符, 结束读取, 返回EOF. 如果遇到空白符(回车, 空格)就表示这个数据的结束.
例如:scanf("%d", &i);scanf("%d", &i);
先是输入, 如果输入了123\n
那么, scanf在读取123的时候, 是正常的, 然后读取到\n, 它是空白符, 于是就结束输入, 而这个空白符是没会被删除的, 它还在输入缓冲区里.
然后后面还有一个要输入的, 因为输入缓冲区不为区, 所以直接读取数据, 但是第一个读到的数据就是空白符, 而后面也没有数据了, 所以返回EOF. 这样就会导致输入错误.
所以一般来说scanf前面都会加一个空格如: scanf(" %d", &i);这样那个空格就会和上一次输入留下的回车符抵消.

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:713
制作脚本网站 发布:2025-10-20 08:17:34 浏览:975
python中的init方法 发布:2025-10-20 08:17:33 浏览:686
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:837
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:745
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1085
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:314
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:194
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:882
python股票数据获取 发布:2025-10-20 07:39:44 浏览:840