zoukankan      html  css  js  c++  java
  • while((c = getchar()) != EOF)(键盘输入问题)

    问题描述:

    样例输入: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。

  • 相关阅读:
    DDL讲解
    hadoop-04
    hadoop03
    记录一次hadoop自己 埋的坑
    flask_apscheduler一款定时任务器
    flask通过内存导出excel
    Matplotlib不能显示中文问题
    hadoop02
    hadoop常见shell命令
    hadoop1
  • 原文地址:https://www.cnblogs.com/boyiliushui/p/5007752.html
Copyright © 2011-2022 走看看