zoukankan      html  css  js  c++  java
  • 5.1对终端进行读写

    几个小知识点:

    字符串数组作为参数。

    fileno(stdout)的使用。

    标准输出是否被重定向了   isatty( fileno(stdout) );

    回车符的过滤方法。

    #include <stdio.h>
    #include <stdlib.h>

    char *menu[] = {
      "a add",
      "b back",
      "c cancel",
      "q quit",
      NULL
    };

    //函数参数类型

    static int getChoice(char* str, char* menu[])
    {
      int choose;
      int c;
      char** p = NULL;
      int select = 0;

      do{
          select = 0;
          printf("%s ", str);

          p = menu;
          while(*p)
          {
            printf("%s ", *p);
            p++;
          }

          //过滤掉输入的回车符

          do{
              choose = getchar();
           }while(choose == ' ');


          p = menu;
          while(*p)
          {
            if(*p[0] == choose)
            {
              select = 1;
              break;
            }

            p++;
          }

          if(!select)
          {
            printf("incorrect input ");
          }


      }while(!select);


      return choose;
    }

    int main()
    {

      int choose;

      do{

          choose = getChoice("Please input command", menu);
          printf("you have choose %c ", choose);
      }while(choose != 'q');

      exit(0);
    }

  • 相关阅读:
    linux下ping命令出现ping: sendto: Network is unreachable
    tiny4412--linux驱动学习(2)
    tiny4412--linux驱动学习(1)
    linux-kernel-4.4 移植 (2)解决上部遗留DMA-PL330的问题
    linux-kernel-4.4 移植 (1)启动
    Busybox构建根文件系统和制作Ramdisk
    tiny4412 --Uboot移植(6) SD卡驱动,启动内核
    select响应事件
    项目总结1
    一个盒子只是显示两行
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/5319697.html
Copyright © 2011-2022 走看看