<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      來看看C++程序員的終端開發解決方案~

      Posted on 2025-07-31 15:43  山地奧斯卡537  閱讀(34)  評論(0)    收藏  舉報

      前幾天熬夜寫庫,追求極簡語法、快速上手、豐富功能、跨平臺支持,下面,請看~

      https://gitee.com/sean537/TC
      https://github.com/Sean537/TC

      TC.hpp - ? 跨平臺終端控制頭文件庫

      ?? 一個現代化的 C++17 終端控制庫,旨在用最簡單的語法解決開發過程中會遇到的各種問題。目前功能包括終端彩色輸出、延時、進度條、基礎控制、系統信息檢測、獲取時間等,跨平臺、零依賴、純頭文件!


      ? 主要特性

      • ??? 跨平臺:Windows/類Unix終端自動適配
      • ?? 豐富色彩:支持前景色、背景色、RGB、字體樣式
      • ?? 現代C++17,純頭文件,零依賴
      • ?? 延時與打字機特效
      • ?? 進度條、鏈式API、終端尺寸/光標控制
      • ?? 代碼風格簡潔,易于集成

      ?? 快速上手

      1. 引入頭文件

      #include "tc.hpp"
      

      2. 主要用法示例

      #include "tc.hpp"
      
      int main() {
          // ?? 顏色與樣式
          tc::tout << TCOLOR_GREEN << "Hello world!" << TCOLOR_RESET << std::endl;
          tc::tout << TFONT_BOLD << "粗體文本" << TFONT_RESET << std::endl;
          tc::tout << TCOLOR_RGB(255,0,0) << "RGB紅" << TCOLOR_RESET << std::endl;
          std::cout << tc::red("紅色文本") << std::endl;
          
          // ?? 延時輸出
          tc::tout << "Wait..." << std::endl;
          tc::tsleep(1000);
          tc::tout << "Done!" << std::endl;
      
          // ??? Python風格打印
          tc::print("Hello ", "world!\n");
          tc::println("年齡: ", 25, ", 分數: ", 95.5);
          tc::println(TCOLOR_RED, "紅色文本");
          tc::println(TCOLOR_GREEN, BCOLOR_YELLOW, "綠色文字,黃色背景");
          tc::println(TCOLOR_BLUE, BCOLOR_WHITE, TFONT_BOLD, "藍色粗體,白色背景");
      
          // ??? Printer鏈式API
          tc::printer()
              .clear()    // 清屏
              .moveCursor(10,5)
              .print("移動光標到(10,5)")
              .hideCursor()   // 隱藏光標
              .moveCursor(tc::Printer::Direction::Down, 2) // 相對移動(向下2行)
              .println("在(10,7)")
              .println() // 換行
              .showCursor();  // 顯示光標
      
          // ?? 終端尺寸
          auto size = tc::printer().getSize();
          tc::println("終端大小: ", size.first, "x", size.second);
      
          // ? 進度條
          tc::ProgressBar bar(30, "█", "?", TCOLOR_GREEN);
          for (int i = 0; i <= 100; ++i) {
              bar.show(i / 100.0, "處理中...");
              tc::wait(0.02);
          }
          bar.finish();
      
          // ??? 執行系統命令
          tc::systemConsole("echo TC systemConsole test");
      
          // ?? 獲取系統時間
          int year = tc::getSystemTime(SYS_YEAR);
          int month = tc::getSystemTime(SYS_MONTH);
          int day = tc::getSystemTime(SYS_DAY);
          int hour = tc::getSystemTime(SYS_HOUR);
          int minute = tc::getSystemTime(SYS_MINUTE);
          int second = tc::getSystemTime(SYS_SECOND);
          int timestamp = tc::getSystemTime(); // 默認Unix時間戳
          tc::println("當前時間: ", year, "-", month, "-", day, " ", hour, ":", minute, ":", second, " (Unix: ", timestamp, ")");
      
          // ??? 檢查系統環境
          int os = tc::systemCheck();
          const char* osName = tc::getOSName(os);
          std::string osVersionInfo = tc::getOSVersionInfo();
          
          tc::println("當前系統: ", osName);
          tc::println("系統版本: ", osVersionInfo);
      
          return 0;
      }
      

      ?? 主要API與宏

      ?? 顏色與樣式

      全局顏色宏(直接用)

      // 前景色
      TCOLOR_RED, TCOLOR_GREEN, TCOLOR_YELLOW, TCOLOR_BLUE, TCOLOR_MAGENTA, TCOLOR_CYAN, TCOLOR_WHITE, TCOLOR_RESET
      // 背景色
      BCOLOR_RED, BCOLOR_GREEN, BCOLOR_YELLOW, BCOLOR_BLUE, BCOLOR_MAGENTA, BCOLOR_CYAN, BCOLOR_WHITE, BCOLOR_DEFAULT
      // 字體樣式
      TFONT_BOLD, TFONT_FAINT, TFONT_ITALIC, TFONT_UNDERLINE, TFONT_BLINK_SLOW, TFONT_BLINK_FAST, TFONT_REVERSE, TFONT_CONCEAL, TFONT_CROSSED, TFONT_DEFAULT, TFONT_FRAKTUR, TFONT_DOUBLE_UNDERLINE, TFONT_NORMAL, TFONT_NOT_ITALIC, TFONT_NO_UNDERLINE, TFONT_NO_BLINK, TFONT_NO_REVERSE, TFONT_REVEAL, TFONT_NOT_CROSSED, TFONT_THICK, TFONT_RESET
      // RGB
      TCOLOR_RGB(r, g, b)
      

      顏色控制類(ColorController)

      // 設置顏色
      tc::ColorController::setColor(tc::ColorController::Color::RED);
      std::cout << "紅色文本" << std::endl;
      
      // 設置RGB顏色
      tc::ColorController::setRGBColor(255, 128, 0);
      std::cout << "橙色文本" << std::endl;
      
      // 設置粗體
      tc::ColorController::setBold(true);
      std::cout << "粗體文本" << std::endl;
      
      // 重置顏色
      tc::ColorController::setColor(tc::ColorController::Color::RESET);
      

      便捷顏色函數

      ? 注意:便捷顏色函數本質上是在字符串頭尾添加 ANSI 轉義序列,最好不要在輸出上濫用,并且部分終端不支持 ANSI 轉移序列。想要做文本帶顏色輸出,推薦移步其它方法。

      // 基本顏色函數
      std::string coloredText = tc::colorize("彩色文本", tc::ColorController::Color::CYAN);
      std::cout << coloredText << std::endl;
      
      // RGB顏色函數
      std::string rgbText = tc::colorizeRGB("RGB顏色文本", 255, 128, 0);
      std::cout << rgbText << std::endl;
      
      // 標準顏色函數
      std::cout << tc::red("紅色文本") << std::endl;
      std::cout << tc::green("綠色文本") << std::endl;
      std::cout << tc::blue("藍色文本") << std::endl;
      std::cout << tc::yellow("黃色文本") << std::endl;
      std::cout << tc::cyan("青色文本") << std::endl;
      std::cout << tc::magenta("洋紅色文本") << std::endl;
      std::cout << tc::white("白色文本") << std::endl;
      
      // 亮色函數
      std::cout << tc::brightRed("亮紅色文本") << std::endl;
      std::cout << tc::brightGreen("亮綠色文本") << std::endl;
      std::cout << tc::brightBlue("亮藍色文本") << std::endl;
      std::cout << tc::brightYellow("亮黃色文本") << std::endl;
      

      字體樣式宏(TFONT_XXX)

      宏名 效果 兼容性說明
      TFONT_BOLD 粗體/加粗 所有平臺完全支持
      TFONT_FAINT 微弱/淡色 Windows完全支持,其他終端部分支持
      TFONT_ITALIC 斜體 Windows完全支持,其他終端部分支持
      TFONT_UNDERLINE 下劃線 所有平臺完全支持
      TFONT_BLINK_SLOW 慢速閃爍 Windows完全支持,其他終端部分支持
      TFONT_BLINK_FAST 快速閃爍 Windows完全支持,其他終端很少支持
      TFONT_REVERSE 反色 所有平臺完全支持
      TFONT_CONCEAL 隱藏 Windows完全支持,其他終端很少支持
      TFONT_CROSSED 刪除線 Windows完全支持,其他終端部分支持
      TFONT_DEFAULT 默認字體 Windows完全支持,其他終端很少支持
      TFONT_FRAKTUR Fraktur字體 Windows完全支持,其他終端極少支持
      TFONT_DOUBLE_UNDERLINE 雙下劃線/粗體關閉 Windows完全支持,其他終端部分支持
      TFONT_NORMAL 粗體/淡色關閉 所有平臺完全支持
      TFONT_NOT_ITALIC 關閉斜體/Fraktur Windows完全支持,其他終端部分支持
      TFONT_NO_UNDERLINE 關閉下劃線 所有平臺完全支持
      TFONT_NO_BLINK 關閉閃爍 Windows完全支持,其他終端很少支持
      TFONT_NO_REVERSE 關閉反色 所有平臺完全支持
      TFONT_REVEAL 關閉隱藏 Windows完全支持,其他終端很少支持
      TFONT_NOT_CROSSED 關閉刪除線 Windows完全支持,其他終端部分支持
      TFONT_THICK 粗體(別名) 同TFONT_BOLD
      TFONT_RESET 全部重置 所有平臺完全支持

      ?? 兼容性說明

      • TC.hpp 在 Windows 平臺上使用 Windows Console API(Win32 API)實現終端控制功能,而不使用 ANSI 轉義序列,因此所有字體樣式在 Windows 平臺上都能完全支持,不受終端對 ANSI 轉義序列支持程度的限制。
      • Linux/macOS 下使用 ANSI 轉義序列實現,主流終端(如 GNOME Terminal、iTerm2、Konsole、Alacritty 等)大多支持常用樣式(粗體、下劃線、反色、部分斜體/刪除線)。
      • TFONT_FRAKTUR、TFONT_DEFAULT、TFONT_DOUBLE_UNDERLINE 等為擴展/實驗性樣式,在非 Windows 平臺上支持度較低。

      用法示例:tc::println(TCOLOR_RED, BCOLOR_YELLOW, TFONT_BOLD, "紅字黃底粗體")

      ??? 終端控制

      tc::terminal命名空間

      // 清空屏幕
      tc::terminal::clear();
      
      // 移動光標到指定位置
      tc::terminal::moveCursor(10, 5);
      std::cout << "這是位置(10,5)" << std::endl;
      
      // 獲取終端大小
      auto [width, height] = tc::terminal::getSize();
      std::cout << "終端大小: " << width << "x" << height << std::endl;
      

      tc::Printer鏈式類

      // 創建Printer對象并執行一系列操作
      tc::printer()
          .clear()                                  // 清屏
          .hideCursor()                             // 隱藏光標
          .moveCursor(10, 5)                        // 移動到絕對位置
          .println("這是位置(10,5)")                 // 打印并換行
          .moveCursor(tc::Printer::Direction::Down, 2) // 相對移動(向下2行)
          .println("向下移動了2行")
          .moveCursor(1, 10)                        // 移動到第10行開頭
          .print("在第10行: ")                       // 打印不換行
          .print("繼續在同一行打印")
          .println()                                // 換行
          .showCursor();                            // 顯示光標
      

      ?? 輸出與打印

      • tc::tout:流式輸出(支持顏色/樣式/延時)
      • tc::print(...) / tc::println(...):多參數打印,支持顏色/樣式宏

      ?? 延時與等待

      • tc::tsleep(ms) / tc::tsleep_stream << ms
      • tc::wait(seconds)
      • tc::waitKey()

      ?? 進度條

      • tc::ProgressBar bar(width, doneChar, todoChar, color)
      • bar.show(progress, msg)
      • bar.finish()

      ??? 系統相關API

      • tc::getSystemTime(int type = SYS_TIMESTAMP):獲取當前時間(年、月、日、時、分、秒、Unix時間戳)
      • tc::systemConsole(const char* 或 std::string):執行系統命令
      • tc::systemConsoleW(const wchar_t*):執行系統命令(寬字符版本,僅Windows平臺可用,支持Unicode命令)
      • tc::systemCheck():檢測當前操作系統,返回操作系統代碼
      • tc::getOSName(int osCode):根據操作系統代碼返回操作系統名稱
      • tc::getOSVersionInfo():獲取當前操作系統的詳細版本信息

      支持的系統宏

      類別 宏名 說明
      Windows系列 OS_WINDOWS 通用Windows標識
      OS_WINDOWSNT6 Windows 7/8/8.1 (NT 6.x)
      OS_WINDOWSNT10 Windows 10 (NT 10.0)
      OS_WINDOWSNT11 Windows 11 (NT 10.0 build 22000+)
      Linux發行版 OS_LINUX 通用Linux標識
      OS_UBUNTU Ubuntu Linux
      OS_DEBIAN Debian Linux
      OS_FEDORA Fedora Linux
      OS_CENTOS CentOS Linux
      OS_REDHAT Red Hat Enterprise Linux
      OS_SUSE SUSE/openSUSE Linux
      OS_ARCH Arch Linux
      OS_GENTOO Gentoo Linux
      OS_SLACKWARE Slackware Linux
      OS_ANDROID Android (基于Linux)
      OS_KALI Kali Linux
      OS_MINT Linux Mint
      OS_MANJARO Manjaro Linux
      OS_ALPINE Alpine Linux
      OS_RASPBIAN Raspbian
      OS_DEEPIN Deepin Linux
      OS_ELEMENTARY Elementary OS
      OS_ZORIN Zorin OS
      OS_POPOS Pop!_OS
      OS_CHROMEOS Chrome OS/Chromium OS
      Apple操作系統 OS_MACOS 通用macOS標識
      OS_MACOS_HIGHSIERRA macOS 10.13 High Sierra (2017)
      OS_MACOS_MOJAVE macOS 10.14 Mojave (2018)
      OS_MACOS_CATALINA macOS 10.15 Catalina (2019)
      OS_MACOS_BIGSUR macOS 11 Big Sur (2020)
      OS_MACOS_MONTEREY macOS 12 Monterey (2021)
      OS_MACOS_VENTURA macOS 13 Ventura (2022)
      OS_MACOS_SONOMA macOS 14 Sonoma (2023)
      OS_MACOS_SEQUOIA macOS 15 Sequoia (2024)
      OS_MACOS_TAHOE macOS 26 Tahoe (2025)
      其他Apple操作系統 OS_IOS iOS (iPhone/iPod touch)
      OS_IPADOS iPadOS (iPad)
      OS_WATCHOS watchOS (Apple Watch)
      OS_TVOS tvOS (Apple TV)
      OS_VISIONOS visionOS (Apple Vision Pro)
      OS_BRIDGEOS bridgeOS (Apple T2芯片)
      OS_AUDIOOS audioOS (HomePod)
      BSD系列 OS_BSD 通用BSD標識
      OS_FREEBSD FreeBSD
      Unix系列 OS_UNIX 通用Unix標識
      新興操作系統 OS_FUCHSIA Google Fuchsia
      OS_HARMONYOS Harmony OS
      其它操作系統 OS_REACTOS ReactOS
      未知操作系統 OS_UNKNOWN 無法識別的操作系統

      用法示例

      // 獲取系統信息
      int osCode = tc::systemCheck();
      const char* osName = tc::getOSName(osCode);
      std::string osVersionInfo = tc::getOSVersionInfo();
      
      // 顯示系統信息
      tc::println("操作系統: ", osName);
      tc::println("系統版本: ", osVersionInfo);
      
      // 根據系統類型執行不同操作
      switch (osCode) {
          case OS_WINDOWSNT11:
              tc::println("Windows 11系統特定操作");
              break;
          case OS_UBUNTU:
              tc::println("Ubuntu系統特定操作");
              break;
          case OS_MACOS:
              tc::println("macOS系統特定操作");
              break;
          // ... 其他系統 ...
          default:
              tc::println("未知系統操作");
      }
      

      ?? 獲取系統時間

      宏名 說明
      SYS_YEAR
      SYS_MONTH
      SYS_DAY
      SYS_HOUR
      SYS_MINUTE
      SYS_SECOND
      SYS_TIMESTAMP Unix時間戳(默認)
      int year = tc::getSystemTime(SYS_YEAR);
      int timestamp = tc::getSystemTime(); // Unix時間戳
      

      ?? 按鍵處理

      waitKey - 等待按鍵

      • tc::waitKey():等待任意按鍵
      • tc::waitKey(char key) / tc::waitKey(int key):等待特定按鍵(如 tc::waitKey('A')、tc::waitKey(KEY_ESC))
      tc::waitKey(); // 等待任意鍵
      // 等待按下A鍵
      tc::waitKey('A');
      // 等待ESC鍵
      tc::waitKey(KEY_ESC);
      

      isKeyPressed - 檢測按鍵狀態

      • tc::isKeyPressed(char key) / tc::isKeyPressed(int key):檢測指定按鍵是否被按下
      // 檢測ESC鍵是否被按下
      if (tc::isKeyPressed(KEY_ESC)) {
          std::cout << "ESC鍵被按下" << std::endl;
      }
      
      // 檢測方向鍵
      if (tc::isKeyPressed(KEY_UP)) {
          std::cout << "上方向鍵被按下" << std::endl;
      }
      
      // 檢測字母鍵
      if (tc::isKeyPressed('A') || tc::isKeyPressed('a')) {
          std::cout << "A鍵被按下" << std::endl;
      }
      

      常用特殊按鍵宏

      宏名 說明
      KEY_ESC ESC
      KEY_SPACE 空格
      KEY_ENTER 回車
      KEY_TAB Tab
      KEY_BACKSPACE 退格
      KEY_INSERT Insert
      KEY_DELETE Delete
      KEY_HOME Home
      KEY_END End
      KEY_PAGEUP PageUp
      KEY_PAGEDOWN PageDown
      KEY_UP 上方向鍵
      KEY_DOWN 下方向鍵
      KEY_LEFT 左方向鍵
      KEY_RIGHT 右方向鍵
      KEY_F1 ~ KEY_F12 F1~F12 功能鍵

      ??? 編譯

      • Windows: g++ -std=c++17 test.cpp -o test.exe
      • Linux/macOS: g++ -std=c++17 -pthread test.cpp -o test

      ?? 協議

      MIT


      ?? 聯系

      博客園  ©  2004-2025
      浙公網安備 33010602011771號 浙ICP備2021040463號-3

      主站蜘蛛池模板: 亚洲av无码乱码在线观看牲色| 国产高潮又爽又刺激的视频| 久久亚洲国产精品五月天| 亚洲第一福利网站在线观看| 男女性高爱潮免费网站| 亚洲a∨无码无在线观看| 国产精品高清一区二区三区| 久久精品国产99久久久古代 | 少妇高潮喷水正在播放| 国产一区二区三区导航| 国产短视频一区二区三区| 女人高潮被爽到呻吟在线观看| 久久96热在精品国产高清| 2021精品亚洲中文字幕| 亚洲区成人综合一区二区| 东方av四虎在线观看| 亚州中文字幕一区二区| 72种姿势欧美久久久久大黄蕉| 欧美三级不卡在线观线看高清| 欧美一区二区三区欧美日韩亚洲 | 久久人人爽爽人人爽人人片av| 欧美熟妇性XXXX欧美熟人多毛| 免费a级黄毛片| 日韩美av一区二区三区| 久久婷婷综合色一区二区| 亚洲AVAV天堂AV在线网阿V| 一二三四中文字幕日韩乱码| 亚洲欧美中文日韩V日本| 国产精品国三级国产av| 国产精品乱码一区二区三| 欧美亚洲一区二区三区在线| 亚洲婷婷综合色香五月| 国产中文字幕精品在线| 亚洲成人资源在线观看| 九九久久自然熟的香蕉图片| 欧洲尺码日本尺码专线美国又| 成人精品区| 国产亚洲精品中文字幕| 亚洲色大成网站WWW久久| 亚洲gv天堂无码男同在线观看| 亚洲老熟女一区二区三区|