标签:
问题描述:
样例输入:O S
样例输出:I A
代码实现:
1 #include <stdio.h> 2 3 char *s = "`1234567890-=qwertyuiop[]\\asdfghjkl;‘zxcvbnm,./‘"; 4 int main() 5 { 6 int c,i; 7 while((c = getchar()) != EOF) 8 { 9 for(i = 1;s[i] && s[i]!=c;i++); 10 if(s[i]) 11 { 12 putchar(s[i-1]); 13 } 14 else 15 { 16 putchar(c); 17 } 18 } 19 return 0; 20 }
个人的想法:
输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。注意返回的只是一个字符,这个字符也就是输入的第一个字符,缓冲区的第一个。然后再次调用getchar(),它会判断缓冲区中是否已有数据,如果有数据就读取缓冲区的第一个字符,然后返回。这样依次下去,直到缓冲区为空,才会等待输入数据。这就是为什么输入abc会打印abc。
while((c = getchar()) != EOF)(键盘输入问题)
标签:
原文地址:http://www.cnblogs.com/boyiliushui/p/5007752.html