在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一個常用的終端菜單系統

冬至子 ? 來源:技術鋪子 ? 作者:chasenzhang ? 2023-01-18 12:43 ? 次閱讀

嵌入式開發中,因為只有黑框框的終端,所以在終端輸入指令是比較麻煩的,每次都需要重新實現解析字符串。

本篇文章分享一個自己常用的一套終端菜單系統。

代碼如下:

#include 
#include 
#include 


typedef enum CmdType
{
    CMD1, CMD2, CMD3, CMD4, CMD5, QUIT
}CmdType;


typedef struct CmdList
{
    CmdType type;
    unsigned char info[50];
}CmdList;


CmdList g_cmd_list[] =
{
    {CMD1, "run cmd1"},
    {CMD2, "run cmd2"},
    {CMD3, "run cmd3"},
    {CMD4, "run cmd4"},
    {CMD5, "run cmd5"},
    {QUIT, "to quit"},
};


void printf_cmd_str()
{
    int size = sizeof(g_cmd_list) / sizeof(g_cmd_list[0]);
    printf("support cmd:\\n");
    for (int i = 0; i < size; i++) {
        printf("    .%d-->%s\\n", i, g_cmd_list[i].info);
    }
    printf("eg. you can input \".0\" to run this cmd.\\n");
}


int main(int argc, char *argv[])
{
    int cmd_size = sizeof(g_cmd_list) / sizeof(g_cmd_list[0]);
    while (1) {
        printf_cmd_str();
        char data[20] = {0};
        if (fgets(data, 20, stdin) < 0) {
            printf("fgets error\\n");
            continue;
        }
        if (data[0] == '.') {
            int id = atoi(&data[1]);
            if (id >= cmd_size || id < 0) {
                printf("input err\\n");
                continue;
            }
            int cmd = g_cmd_list[id].type;
            if (cmd == CMD1) {
                printf("run cmd1\\n");
            }
            else if (cmd == CMD2) {
                printf("run cmd2\\n");
            }
            else if (cmd == CMD3) {
                printf("run cmd3\\n");
            }
            else if (cmd == CMD4) {
                printf("run cmd4\\n");
            }
            else if (cmd == CMD5) {
                printf("run cmd5\\n");
            }
            else if (cmd == QUIT) {
                printf("to quit\\n");
                break;
            }
            else {
                printf("this cmd is not supported\\n");
            }
        }
        else {
            printf("input invalid\\n");
        }
    }


    return 0;
}

運行結果如下:

****@****:~/zcl$ ./a.out 
support cmd:
    .0-->run cmd1
    .1-->run cmd2
    .2-->run cmd3
    .3-->run cmd4
    .4-->run cmd5
    .5-->to quit
eg. you can input ".0" to run this cmd.
.0
run cmd1
support cmd:
    .0-->run cmd1
    .1-->run cmd2
    .2-->run cmd3
    .3-->run cmd4
    .4-->run cmd5
    .5-->to quit
eg. you can input ".0" to run this cmd.
.5
to quit
****@****:~/zcl$

審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19141

    瀏覽量

    305971
  • CMDB
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6744
  • LINUX內核
    +關注

    關注

    1

    文章

    316

    瀏覽量

    21671
收藏 人收藏

    評論

    相關推薦

    【申精】【轉帖】占用內存極少的菜單系統的實現

    LCD上直接使用這份代碼為什么公布這份代碼,使用的話需要授權什么的么? 文件目錄:1. MenuSampleCode目錄是代碼這份代碼我在我的硬件上測試過。2.說明文檔是:占用內存極少的菜單系統
    發表于 01-22 15:53

    基于VS2010單列樹形結構文本菜單系統設計

    在公司閑著,于是寫了菜單系統。這個菜單系統不是很復雜的,功能簡單。總共300多行代碼。實現1~255級和1~255相目錄顯示。這里放在VS上實現,主要是便于調試,其實它主要用于帶普
    發表于 07-31 14:58

    深聯華單片機實現菜單系統

    在各類儀器儀表的設計中,常常需要透過液晶和鍵盤來實現人機交互,當整個系統需要管理的內容較多的時候,如何透過鍵盤和液晶實現有效管理便是問題。通常軟件的設計者會設計
    發表于 10-31 09:16

    Ubuntu終端常用的快捷鍵

    Ubuntu中的許多操作在終端(Terminal)中十分的快捷,記住些快捷鍵的操作更得心應手。在Ubuntu中打開終端的快捷鍵是Ctrl+Alt+T。其他的
    發表于 10-28 13:47

    STC15單片機驅動5寸屏幕做多級菜單顯示,用什么屏幕比較好?

    最近在做一個項目,想用STC15來寫多級菜單系統,顯示在5寸屏幕上。 1、請問各位朋友,選擇哪種屏幕比較好?請各位推薦幾塊屏幕,不勝感激! 2、還有就是做多級
    發表于 10-07 07:33

    9優秀的開源工單系統,你知道幾個

    單系統(也稱為問題跟蹤系統,故障工單系統,支持工單或事件工單系統)是計算機軟件包或基于We
    發表于 06-17 04:10 ?2.5w次閱讀
    9<b class='flag-5'>個</b>優秀的開源工<b class='flag-5'>單系統</b>,你知道幾個

    多級操作菜單顯示系統設計

    本文旨在提供輕量級的單片機多級菜單實現方法,以較少的系統資源消耗和簡單方便的方法完成菜單設計。考慮到
    發表于 03-26 15:07 ?7438次閱讀
    多級操作<b class='flag-5'>菜單</b>顯示<b class='flag-5'>系統</b>設計

    Visual FoxPro使用教程之菜單設計與建立應用程序系統

    菜單是應用程序的重要組成部分,VFP中可以通過以往的常規程序設計方法,直接編寫代碼進行菜單設計,但通過VFP提供的菜單設計器,可以更為方
    發表于 09-20 11:42 ?0次下載
    Visual FoxPro使用教程之<b class='flag-5'>菜單</b>設計與建立應用程序<b class='flag-5'>系統</b>

    英創信息技術ARM9 Linux智能終端菜單界面設計介紹

    、LCD128x64、LCD160x160等。在實際應用中有許多對于菜單界面操作的需求,需要客戶根據應用的具體要求自行構建菜單顯示界面,本文將重點介紹這方面的內容。
    的頭像 發表于 11-18 10:04 ?1345次閱讀
    英創信息技術ARM9 Linux智能<b class='flag-5'>終端菜單</b>界面設計介紹

    linux系統中如何創建文本菜單

    當使用Linux系統時,最常見的Shell腳本交互類型是應用菜單(文本菜單),文本菜單的核心是case命令。 H. L.使用case命令完成菜單
    發表于 09-25 15:45 ?1160次閱讀

    AVR期末 自選設計 菜單系統多功能使用

    Avr自選設計實踐內容,綜合各個功能模塊設計基于菜單的實踐作品。1)基本內容:設計菜單系統(lcd顯示菜單,或者數碼管顯示菜單編號),menu0實現具有校準功能的時鐘
    發表于 11-15 18:51 ?6次下載
    AVR期末    自選設計 <b class='flag-5'>菜單系統</b>多功能使用

    帶LCD的簡單Arduino菜單

    電子發燒友網站提供《帶LCD的簡單Arduino菜單.zip》資料免費下載
    發表于 11-15 14:38 ?1次下載
    <b class='flag-5'>一</b><b class='flag-5'>個</b>帶LCD的簡單Arduino<b class='flag-5'>菜單</b>

    基于Arduino UNO的編碼器菜單系統

    、編碼器兩針腳、內置按鈕針腳該函數控制輪次計數,菜單控制器將此計數傳遞給變量。當用戶單擊按鈕時,計數器重置為 0。還有更簡單更好的方法來控制變量。您可以使用方向變量(dir)。我
    發表于 12-20 16:00 ?0次下載

    簡單的菜單系統配置開源設計

    電子發燒友網站提供《簡單的菜單系統配置開源設計.zip》資料免費下載
    發表于 06-09 10:31 ?0次下載
    簡單的<b class='flag-5'>菜單系統</b>配置開源設計

    會議體機單系統與雙系統的區別在哪里?怎么選擇

    體機通常具有更簡單的設計,僅配備操作系統和應用程序,這種體機通常更加可靠和易于維護。此外,單系統一體機價格上更便宜,適合只需要基本會議
    的頭像 發表于 11-02 14:40 ?1512次閱讀
    主站蜘蛛池模板: 色老头性xxxx老头视频| 色手机在线| 亚洲视频在线播放| 亚洲一区二区在线| 九月婷婷综合婷婷| 伊人久久成人| 五月婷婷六月丁香| 三级在线观看视频| 免费看片aⅴ免费大片| 精品综合久久久久久98| 电影一区二区三区| 日本丝瓜着色视频| 国色天香网在线| 午色| 欧美日韩一区二区三区视频在线观看| 久久精品人| 亚洲综合色网站| 久久久国产乱子伦精品| 六月丁香啪啪六月激情| 日本级毛片免费观看| 午夜免费看片| 免费黄色网址网站| 又粗又硬又爽又黄毛片| 孩交啪啪网址| 午夜在线观看福利| 天堂资源在线最新版| wwwxxx亚洲| 狠狠色噜噜狠狠狠狠五月婷 | 天天射狠狠干| www日| 男女交黄| 色色色爱| 丁香婷婷在线视频| 久久天天躁狠狠躁夜夜不卡| 49vv婷婷网| 天堂bt资源新版在线| 激情网址在线观看| 手机在线视频观看| h免费在线观看| 天堂资源中文在线| 国产乱码免费卡1卡二卡3卡四|