ROS云課基礎題庫-01C++案例-甜甜圈

效率是核心,但效率高的教程會忽略掉非常多的細節。


解決問題的思路和細節對于一個問題的有效求解至關重要。


資料

云課五分鐘-02第一個代碼復現-終端甜甜圈C++-CSDN博客

從云課五分鐘到五秒鐘焦慮的甜甜圈向前沖-CSDN博客??


說明

復現重要性沒有那么大,重點功利角度在于不斷提升學習效率(多賺分),社會角度(多賺錢)。

回到ROS云課。

1. c++

#include <stdio.h>
#include <math.h>
#include <cstring>
#include <unistd.h>int main() {float A = 0, B = 0;float i, j;int k;float z[1760];char b[1760];printf("\x1b[2J");for (;;) {memset(b, 32, 1760);memset(z, 0, 7040);for (j = 0; j < 6.28; j += 0.07) {for (i = 0; i < 6.28; i += 0.02) {float c = sin(i);float d = cos(j);float e = sin(A);float f = sin(j);float g = cos(A);float h = d + 2;float D = 1 / (c * h * e + f * g + 5);float l = cos(i);float m = cos(B);float n = sin(B);float t = c * h * g - f * e;int x = 40 + 30 * D * (l * h * m - t * n);int y = 12 + 15 * D * (l * h * n + t * m);int o = x + 80 * y;int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {z[o] = D;b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];}}}printf("\x1b[H");for (k = 0; k < 1761; k++) {putchar(k % 80 ? b[k] : 10);A += 0.00004;B += 0.00002;}usleep(30000);}return 0;
}

2. g++

g++ -o donut donut.cpp

3. app

./donut

如上是純手工復現。

采用自動化方式復現如下:

echo "終端焦慮的甜甜圈"git clone https://gitcode.com/ZhangRelay1/donut.gitcd ~/donutg++ colordonut.cpp -o donut./donutecho "突破封印的甜甜圈"


視頻?

ROS云課基礎題庫-C++案例-甜甜圈


你提到的代碼是一個在終端中繪制動態甜甜圈圖案的 C++ 程序。這個程序通過使用數學函數和 ASCII 字符在終端中創建了一個視覺上類似甜甜圈的旋轉效果。復現這個代碼的過程不僅有助于理解如何使用 C++ 進行圖形編程(盡管是簡單的字符圖形),還可以提升學習效率,并通過對代碼進行修改和優化來提高編程技能。

代碼說明

  1. 包含頭文件

     

    cpp復制代碼

    #include <stdio.h>
    #include <math.h>
    #include <cstring>
    #include <unistd.h>

    這些頭文件提供了基本的輸入輸出、數學函數、內存操作和睡眠功能。

  2. 變量初始化

     

    cpp復制代碼

    float A = 0, B = 0;
    float i, j;
    int k;
    float z[1760];
    char b[1760];

    這些變量用于存儲計算過程中的中間值和最終的字符圖形。

  3. 主循環

    • 使用無限循環?for (;;)?不斷刷新終端屏幕。
    • memset?函數用于清空數組?b?和?z
    • 嵌套循環計算每個點的位置和亮度。
    • 使用數學函數?sin?和?cos?計算 3D 空間中的點。
    • 通過計算確定每個點對應的 ASCII 字符。
  4. 輸出

    • 使用 ANSI 轉義序列?\x1b[H?移動光標到屏幕頂部,并用?\x1b[2J?清屏。
    • 輸出字符數組?b?中的字符,形成圖形。
    • 使用?usleep(30000)?暫停 30 毫秒以控制刷新率。

自動化復現步驟

你提供的自動化步驟使用 Git 和命令行來快速復現這個項目:

 

bash復制代碼

echo "終端焦慮的甜甜圈"
git clone https://gitcode.com/ZhangRelay1/donut.git
cd ~/donut
g++ colordonut.cpp -o donut
./donut
echo "突破封印的甜甜圈"

這些命令的作用是:

  1. 輸出提示信息。
  2. 克隆包含代碼的 Git 倉庫。
  3. 進入項目目錄。
  4. 編譯 C++ 源代碼并生成可執行文件。
  5. 運行可執行文件以查看甜甜圈效果。
  6. 輸出完成提示信息。

提升學習效率

  • 實踐:通過手動編寫和調試代碼,加深對 C++ 和算法的理解。
  • 自動化:利用腳本和工具簡化重復性任務,專注于代碼的優化和改進。
  • 分享:將學習過程和成果記錄下來,分享給他人,鞏固自己的知識。

社會角度

  • 項目經驗:這種小型項目可以作為簡歷上的項目經驗,展示你的編程能力和創造力。
  • 社區參與:通過分享和參與開源項目,擴大人脈,了解行業動態。
  • 持續學習:不斷提升自己的技能,適應快速變化的技術環境,增加職業競爭力。

通過復現和優化這樣的項目,不僅可以提高編程技能,還可以在學習和工作中獲得實際的收益。


C++知識點

這段代碼是一個簡單的ASCII藝術動畫程序,使用數學函數生成一個動態變化的圖案。以下是代碼中涉及的C++知識點及其詳細介紹:

1. 頭文件

 

c復制代碼

#include <stdio.h>
#include <math.h>
#include <cstring>
#include <unistd.h>
  • <stdio.h>: 提供輸入輸出功能,例如printfputchar
  • <math.h>: 提供數學函數,例如sincos
  • <cstring>: 提供字符串處理函數,例如memset
  • <unistd.h>: 提供POSIX操作系統API訪問,包括usleep函數。

2. 變量聲明和初始化

 

c復制代碼

float A = 0, B = 0;
float i, j;
int k;
float z[1760];
char b[1760];
  • 基本數據類型: 使用floatint聲明變量。
  • 數組:?zb是數組,分別用于存儲深度和字符。

3. 無限循環

 

c復制代碼

for (;;) {
// ...
}
  • 無限循環: 使用for (;;)創建一個無限循環,常用于需要持續運行的程序。

4. 內存設置

 

c復制代碼

memset(b, 32, 1760);
memset(z, 0, 7040);
  • memset函數: 用于將數組bz初始化為特定值。32是ASCII空格字符,0用于浮點數數組的初始化。

5. 嵌套循環和數學計算

 

c復制代碼

for (j = 0; j < 6.28; j += 0.07) {
for (i = 0; i < 6.28; i += 0.02) {
// ...
}
}
  • 嵌套循環: 用于遍歷二維空間。
  • 數學函數: 使用sincos計算圖案的坐標和亮度。

6. 數組索引和條件判斷

 

c復制代碼

int x = 40 + 30 * D * (l * h * m - t * n);
int y = 12 + 15 * D * (l * h * n + t * m);
int o = x + 80 * y;
if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
z[o] = D;
b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
}
  • 數組索引計算: 計算二維坐標(x, y)對應的一維數組索引o
  • 條件判斷: 確保坐標在有效范圍內,并更新深度緩沖區z和字符緩沖區b

7. 字符映射

 

c復制代碼

b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
  • 字符數組: 使用字符數組實現亮度到字符的映射。

8. 屏幕輸出和動畫

 

c復制代碼

printf("\x1b[H");
for (k = 0; k < 1761; k++) {
putchar(k % 80 ? b[k] : 10);
A += 0.00004;
B += 0.00002;
}
usleep(30000);
  • ANSI轉義序列:?\x1b[H移動光標到屏幕左上角。
  • 字符輸出: 使用putchar輸出字符,每80個字符換行。
  • 動畫效果: 通過改變AB實現圖案的動態變化,并使用usleep控制幀率。

9. 主函數返回值

 

c復制代碼

return 0;
  • 程序結束:?return 0表示程序正常結束。

總結

這段代碼結合了數學計算、字符處理、內存操作和ANSI轉義序列生成動態ASCII藝術圖案。它展示了如何在C語言中使用基本圖形技術和動畫原理。


Linux g++知識點

使用?g++?編譯 C++ 程序時,了解編譯器的選項和過程是很重要的。下面詳細介紹如何使用?g++?編譯器將源代碼文件?donut.cpp?編譯成可執行文件?donut,并解釋其中涉及的知識點。

1. 基本命令結構

 

bash復制代碼

g++ -o donut donut.cpp
  • g++: GNU Compiler Collection(GCC)中的C++編譯器。它是用于編譯C++程序的主要工具。
  • -o donut: 指定輸出文件名為?donut。如果沒有這個選項,默認輸出文件名是?a.out
  • donut.cpp: 輸入的C++源代碼文件。

2. 編譯過程

編譯過程通常包括幾個階段:預處理、編譯、匯編和鏈接。g++?會自動處理這些階段。

  • 預處理: 處理?#include?和?#define?指令,展開宏,生成預處理后的代碼。
  • 編譯: 將預處理后的代碼翻譯成匯編代碼。
  • 匯編: 將匯編代碼轉換成機器碼,生成目標文件(.o?文件)。
  • 鏈接: 將目標文件和庫文件鏈接在一起,生成最終的可執行文件。

3. 常見的?g++?選項

  • -c: 只編譯,不鏈接。生成目標文件而不是可執行文件。
  • -Wall: 啟用所有常見的警告信息。有助于發現潛在的編程錯誤。
  • -Wextra: 啟用額外的警告信息,進一步幫助發現潛在問題。
  • -O[n]: 優化代碼,n?為優化級別,0?到?30?表示無優化,3?表示最高級別的優化。
  • -g: 生成調試信息,用于在調試器中查看源代碼和執行過程。
  • -std=c++[version]: 指定C++標準版本,例如?-std=c++11-std=c++14-std=c++17-std=c++20?等。
  • -I[directory]: 指定頭文件搜索路徑。
  • -L[directory]: 指定庫文件搜索路徑。
  • -l[library]: 鏈接指定的庫文件。

4. 示例解釋

在命令?g++ -o donut donut.cpp?中:

  • 沒有使用優化選項,所以編譯器不會進行優化。對于生產代碼,通常會使用?-O2?或?-O3?來提高性能。
  • 沒有指定標準版本,所以編譯器將使用默認的C++標準版本。為了確保兼容性,通常會顯式指定標準版本,例如?-std=c++17
  • 輸出文件?donut?是指定的可執行文件名稱。運行這個文件可以通過?./donut?在終端中執行。

5. 執行編譯后的程序

編譯成功后,可以通過以下命令運行生成的可執行文件:

 

bash復制代碼

./donut

6. 調試和錯誤處理

  • 查看警告和信息: 使用?-Wall?和?-Wextra?來捕獲潛在的警告。
  • 調試: 如果需要調試程序,使用?-g?選項生成調試信息,然后使用調試器(如?gdb)進行調試。

總結

使用?g++?編譯器可以有效地將C++源代碼轉換為可執行文件。通過理解和使用不同的編譯器選項,可以控制編譯過程,優化代碼,生成調試信息,并確保代碼與特定的C++標準兼容。


Linux命令知識點

在終端執行?./donut?命令時,涉及的知識點主要包括以下幾個方面:

1. 可執行文件與權限

  • 可執行文件:在Linux系統中,可執行文件是一種特殊的文件類型,它包含可以被操作系統直接執行的機器碼。
  • 執行權限:為了執行一個文件,該文件必須具有執行權限。你可以使用?ls -l?命令查看文件的權限,其中?x?表示執行權限。如果沒有執行權限,可以使用?chmod +x donut?命令來添加執行權限。

2. 當前工作目錄

  • 當前工作目錄:在終端中執行命令時,命令會在當前工作目錄(也稱為當前目錄)中查找文件和可執行文件。
  • 路徑:如果?donut?文件不在當前工作目錄中,你需要提供文件的完整路徑或相對路徑。例如,如果?donut?文件在?/home/user/bin?目錄下,你需要執行?./home/user/bin/donut?或先切換到該目錄,再執行?./donut

3. 命令解釋與執行

  • 命令解釋器(shell):當你輸入命令并按下回車鍵時,終端會調用當前的shell(如bash、zsh等)來解釋和執行該命令。
  • 動態鏈接庫:如果?donut?程序依賴于某些動態鏈接庫(如libstdc++、libc等),這些庫必須在系統的庫路徑中,或者你需要通過?LD_LIBRARY_PATH?環境變量指定庫的路徑。

4. 環境變量

  • 環境變量:環境變量是操作系統中用于配置程序運行環境的參數。例如,PATH?環境變量指定了shell查找可執行文件的目錄列表。
  • 影響執行:環境變量可以影響程序的執行,例如,LANG?環境變量設置程序的語言環境,TZ?環境變量設置程序使用的時區。

5. 終端與輸入輸出

  • 標準輸入輸出:程序通過標準輸入(stdin)、標準輸出(stdout)和標準錯誤輸出(stderr)與終端進行交互。默認情況下,./donut?命令的輸出會顯示在終端上。
  • 重定向:你可以使用重定向符號(如?>>><?等)來改變輸入輸出流的方向。例如,./donut > output.txt?會將程序的輸出重定向到文件?output.txt?中。

6. 進程管理

  • 進程創建:執行?./donut?命令時,系統會創建一個新的進程來運行該程序。
  • 進程終止:程序運行結束后,該進程會被終止,并返回控制權給終端。
  • 信號處理:在程序運行過程中,你可以通過發送信號來控制程序的執行。例如,使用?Ctrl+C?可以發送?SIGINT?信號來終止程序。

7. 錯誤處理

  • 錯誤報告:如果?donut?程序執行失敗,終端通常會顯示錯誤信息,幫助診斷問題。
  • 退出狀態:程序執行結束后,會返回一個退出狀態碼。通常,0?表示成功,非零值表示失敗或錯誤。

8. 安全性

  • 可執行文件來源:在執行任何可執行文件之前,應確保文件來源可信,避免執行惡意軟件。
  • 權限設置:合理設置文件的權限,避免不必要的執行權限。

總結來看,在終端執行?./donut?命令時,涉及的知識點包括可執行文件與權限、當前工作目錄、命令解釋與執行、環境變量、終端與輸入輸出、進程管理、錯誤處理以及安全性等方面。這些知識點共同構成了在Linux終端中執行程序的基礎。


自動化腳本知識點

你提供的命令序列是一個簡單的自動化腳本示例,它利用終端命令來執行一系列操作。以下是對每個命令的詳細介紹,包括它們涉及的知識點:

1.?echo "終端焦慮的甜甜圈"

  • echo?命令
    • 用于在終端輸出文本。
    • 這里的?"終端焦慮的甜甜圈"?是輸出的字符串。
    • 知識點:基本的終端命令使用,字符串輸出。

2.?git clone https://gitcode.com/ZhangRelay1/donut.git

  • git clone?命令
    • 用于從遠程Git倉庫復制代碼到本地。
    • https://gitcode.com/ZhangRelay1/donut.git?是遠程倉庫的URL。
    • 知識點:Git版本控制系統,克隆遠程倉庫。

3.?cd ~/donut

  • cd?命令
    • 用于更改當前工作目錄。
    • ~/donut?表示當前用戶目錄下的?donut?文件夾。
    • 知識點:文件系統導航,路徑使用(絕對路徑和相對路徑)。

4.?g++ colordonut.cpp -o donut

  • g++?編譯器
    • 用于編譯C++源代碼文件。
    • colordonut.cpp?是要編譯的源代碼文件。
    • -o donut?選項指定輸出的可執行文件名為?donut
    • 知識點:C++編譯過程,g++?編譯器的基本使用。

5.?./donut

  • 執行可執行文件
    • ./donut?命令用于執行當前目錄下的?donut?可執行文件。
    • 知識點:可執行文件的執行權限,進程管理。

6.?echo "突破封印的甜甜圈"

  • 再次使用?echo?命令
    • 輸出?"突破封印的甜甜圈"
    • 知識點:同第一個?echo?命令。

腳本自動化涉及的知識點

  • 順序執行
    • 腳本中的每個命令按順序執行。
    • 知識點:基本的腳本編寫,命令的順序和依賴關系。
  • 腳本文件
    • 可以將這些命令保存到一個文本文件中(如?run.sh),并通過?chmod +x run.sh?賦予執行權限,然后通過?./run.sh?來運行整個腳本。
    • 知識點:腳本文件的創建和執行權限。
  • 錯誤處理
    • 在實際應用中,通常需要添加錯誤處理機制,以確保每個步驟成功執行。
    • 知識點:條件判斷(如使用?if?語句),錯誤碼檢查。
  • 環境配置
    • 確保所有依賴的工具(如?git?和?g++)已安裝,并在系統的?PATH?中可用。
    • 知識點:環境變量配置,軟件包管理(如使用?aptyum?或?brew?安裝工具)。

總結

這個簡單的自動化腳本展示了如何在終端中使用基本命令來執行一系列任務,包括輸出文本、克隆Git倉庫、編譯C++代碼和執行可執行文件。涉及的知識點包括終端命令的使用、Git版本控制、C++編譯過程、腳本編寫和執行權限管理等。通過將這些命令整合到一個腳本中,可以自動化執行這些任務,提高效率和一致性。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72875.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C/S架構與B/S架構

一、定義與核心區別 C/S架構&#xff08;Client/Server&#xff0c;客戶端/服務器&#xff09; 客戶端需安裝專用軟件&#xff08;如QQ、企業ERP系統&#xff09;&#xff0c;直接與服務器通信。服務器端通常包括數據庫和業務邏輯處理1。特點&#xff1a;客戶端承擔部分計算任務…

【匯編語言】單片機程序執行過程

一、任務需求 指示燈LED4閃爍&#xff0c;亮0.5秒&#xff0c;滅0.5秒&#xff0c;無限循環 二、針對硬件的編程 1、確定原理圖2、確定硬件的物理關系 三、設計步驟 1.用自己的語言描述工作流程 1.1指示燈LED4亮1.2延時0.5秒1.3指示燈LED4滅1.4延時0.5秒1.5跳轉到1.1步 …

openharmony 富對富 WiFi投屏設計

castengine_wifi_display部件別名Sharing&#xff0c;媒體分享之意。擁有流媒體協議接入、媒體預覽、媒體轉分發能力&#xff0c;受投播管理服務管理和調用&#xff0c;是音視頻投播子系統重要的流媒體能力部件。提供一套簡單的Native C的接口&#xff0c;主要業務是Miracast投…

Android項目優化同步速度

最近項目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg庫&#xff0c;發現原來通過google官方的代碼倉&#xff0c;下載太慢了&#xff0c;每秒KB級別的速度。&#xff08;之前下gradle/gradle plugin都不至于這么慢&#xff09;&#xff0c;于是想到配置國內鏡像源來提…

Git 如何配置多個遠程倉庫和免密登錄?

自我簡介&#xff1a;4年導游&#xff0c;10年程序員&#xff0c;最近6年一直深耕低代碼領域&#xff0c;分享低代碼和AI領域見解。 通用后臺管理系統 代號&#xff1a;虎鯨 緣由 每次開發后臺界面都會有很多相同模塊&#xff0c;嘗試抽離出公共模塊作為快速開發的基座。 目標…

JVM組成面試題及原理

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的運行環境&#xff08;java二進制字節碼的運行環境&#xff09; 好處&#xff1a; 一次編寫&#xff0c;到處運行自動內存管理&#xff0c;垃圾回收機制 JVM由哪些部分組成&#xff0c;運行流程是什么&#xff1f;…

江科大51單片機筆記【11】AT24C02數據存儲秒表

一、數據存儲 先把需要的模塊導入做個測試 //main.c#include <REGX52.H> #include " LCD1602.h" #include " Key.h"void main() {LCD_Init();LCD_ShowString(1,1,"Hello");while(1){}} 代碼思路 分成兩塊寫&#xff0c;一塊寫I2C.c&am…

Hadoop的運行模式

Hadoop的運行模式 1、本地運行模式2、偽分布式運行模式3、完全分布式運行模式4、區別與總結 Hadoop有三種可以運行的模式&#xff1a;本地運行模式、偽分布式運行模式和完全分布式運行模式 1、本地運行模式 本地運行模式無需任何守護進程&#xff0c;單機運行&#xff0c;所有…

2.裝飾器模式

概述 裝飾器模式&#xff1a;在原有結構&#xff0c;動態地為對象添加職責&#xff0c;它是一種靈活的擴展功能方式。 業務場景&#xff1a;創建訂單 假設你正在開發一個電商系統&#xff0c;用戶在創建訂單時可以選擇不同的服務&#xff08;如折扣、配送、禮品包裝等&#…

C++11新特性 10.初始化列表、initializer_list

目錄 一.初始化列表 使用示例 二.initializer_list 1.基本概念 2.使用示例 一.初始化列表 C11提供的統一初始化方式&#xff0c;實現直接對數據初始化 使用示例 /* 初始化列表 */ #include <iostream> using namespace std; class Person { public:Person(string…

Vue 的 render 函數如何與 JSX 結合使用

在 Vue.js 中&#xff0c;render 函數提供了一種更底層的方式來創建虛擬 DOM 節點&#xff0c;而 JSX 則是一種 JavaScript 的語法擴展&#xff0c;允許開發者在 JavaScript 代碼中直接編寫類似 HTML 的結構。結合使用 render 函數和 JSX 可以帶來更高的靈活性和編程能力&#…

基于DeepSeek的智慧醫藥系統(源碼+部署教程)

運行環境 智慧醫藥系統運行環境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技術棧&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧醫藥系統主要分為兩個角色。 游客 尚未進行注冊和登錄。具備登錄注冊、…

南開提出1Prompt1Story,無需訓練,可通過單個連接提示實現一致的文本到圖像生成。

&#xff08;1Prompt1Story&#xff09;是一種無訓練的文本到圖像生成方法&#xff0c;通過整合多個提示為一個長句子&#xff0c;并結合奇異值重加權&#xff08;SVR&#xff09;和身份保持交叉注意力&#xff08;IPCA&#xff09;技術&#xff0c;解決了生成圖像中身份不一致…

BLUEM2引擎源碼2025最新版

BLUE 引擎解析&#xff1a;傳奇私服圈中的熱門引擎 一、BLUE 引擎簡介 BLUE 引擎是傳奇私服圈子中較為知名的一款游戲引擎&#xff0c;它在傳統的傳奇引擎基礎上進行了優化和擴展&#xff0c;使得私服開發者可以更加方便地搭建和管理服務器。相比于早期的 GEE、LEG、Hero 等引…

第53天:Web攻防-SQL注入數據庫類型用戶權限架構分層符號干擾利用過程發現思路

#知識點&#xff1a;(本節課了解即可&#xff09; 1、Web攻防-SQL注入-產生原理&應用因素 2、Web攻防-SQL注入-各類數據庫類型利用 一、數據庫知識&#xff1a; 1、數據庫名&#xff0c;表名&#xff0c;列名&#xff0c;數據 2、自帶數據庫&#xff0c;數據庫用戶及權限 3…

【玩轉MySQL數據字典】MySQL數據字典與常用操作指令

MySQL數據字典簡介與常用操作指令 一、數據字典簡介 數據字典是MySQL 5.7中用于存儲數據庫對象元數據的系統表。在MySQL的早期版本中&#xff0c;元數據存儲在.frm文件及其他文件里。這種存儲方式存在諸多弊端&#xff0c;例如元數據不一致問題&#xff0c;不同文件間元數據的…

如何有效判斷與排查Java GC問題

目錄 一、GC的重要性與對性能的影響 &#xff08;一&#xff09;GC對性能的影響簡要分析 1.GC暫停與應用停頓 2.GC吞吐量與資源利用率 3.GC對內存管理的作用&#xff1a;資源回收 4.GC策略與優化的選擇 &#xff08;二&#xff09;GC的雙刃劍 二、GC性能評價標準 &…

el-table(elementui)表格合計行使用以及滾動條默認樣式修改

一、el-table新增合計行以及el-table展示數據出現的問題 1. 使用合計行 el-table的屬性show-summary設為true&#xff0c;即可在表格尾部展示合計行。默認情況下&#xff0c;第一列不展示數據&#xff0c;而顯示合計二字&#xff0c;可以通過sum-text自己配置&#xff0c;其余…

olmOCR:高效精準的 PDF 文本提取工具

在日常的工作和學習中&#xff0c;是否經常被 PDF 文本提取問題困擾&#xff1f;例如&#xff1a; 想從學術論文 PDF 中提取關鍵信息&#xff0c;卻發現傳統 OCR 工具識別不準確或文本格式混亂&#xff1f;需要快速提取商務合同 PDF 中的條款內容&#xff0c;卻因工具不給力而…

云計算:虛擬化、容器化與云存儲技術詳解

在上一篇中,我們深入探討了網絡安全的核心技術,包括加密、認證和防火墻,并通過實際案例和細節幫助讀者全面理解這些技術的應用和重要性。今天,我們將轉向一個近年來迅速發展的領域——云計算。云計算通過提供按需訪問的計算資源,徹底改變了IT基礎設施的構建和管理方式。本…