while((c = getchar()) != EOF)(键盘输入问题)
2024-10-11 12:56:21
问题描述:
样例输入:O S
样例输出:I A
代码实现:
#include <stdio.h> char *s = "`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./'";
int main()
{
int c,i;
while((c = getchar()) != EOF)
{
for(i = ;s[i] && s[i]!=c;i++);
if(s[i])
{
putchar(s[i-]);
}
else
{
putchar(c);
}
}
return ;
}
个人的想法:
输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。注意返回的只是一个字符,这个字符也就是输入的第一个字符,缓冲区的第一个。然后再次调用getchar(),它会判断缓冲区中是否已有数据,如果有数据就读取缓冲区的第一个字符,然后返回。这样依次下去,直到缓冲区为空,才会等待输入数据。这就是为什么输入abc会打印abc。
最新文章
- IOC和AOP的基础原理
- WPA/WAP2wifi 密码破解笔记
- dword word byte 相互转换 .xml
- 轻松学习Linux之入门篇
- hdu4485 B-Casting(mod运算)
- Umbraco TextBoxFor 如何加样式和属性
- HDU_1401——分步双向BFS,八进制乘权值压缩,map存放hash
- 【转】android ddms中查看线程释疑
- python字符集的转换(mysql数据乱码的处理)
- Android开发学习之路--RxAndroid之简单原理
- nodejs接收get参数和post参数
- bisect模块(使用二分法将数据按顺序插入一个列表)
- python2.7生成exe可执行文件
- java线程入门一
- ettercap插件介绍
- 为 昂达 v891 安装上了 remix OS 了
- java string字符拼接符"+"的研究
- DataContract和DataMember的作用
- null和System.DBNull.Value的区别
- Android下基于PCM的音频渲染