20240301作業

?1.使用fwrite、fread將一張隨意的bmp圖片,修改成德國的國旗

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{FILE* fp = fopen("./gaoda.bmp","r");fseek(fp,2,SEEK_SET);int bmp_size = 0;fread(&bmp_size,4,1,fp);printf("文件大小為 %d 字節\n",bmp_size);int w = 0,h = 0;fseek(fp,18,SEEK_SET);fread(&w,4,1,fp);fread(&h,4,1,fp);printf("圖像尺寸為:%d * %d\n",w,h);fclose(fp);fp = fopen("./gaoda.bmp","r+");fseek(fp,54,SEEK_SET);// bmp 圖片默認像素格式是 bgr的unsigned char yel[3] = {0,255,255};unsigned char red[3] = {0,0,255};unsigned char bla[3] = {0,0,0};for(int i=0;i<w;i++){for(int j=0;j<(h/3);j++){fwrite(yel,3,1,fp);}}for(int i=0;i<w;i++){for(int j=(h/3);j<(h/3*2);j++){fwrite(red,3,1,fp);}}for(int i=0;i<w;i++){for(int j=(h/3*2);j<h;j++){fwrite(bla,3,1,fp);}}fclose(fp);return 0;
}

?

2.使用提供的getch函數,編寫一個專門用來輸入密碼的函數,要求輸入密碼的時候,顯示 * 號,輸入回車的時候,密碼輸入結束

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <termios.h>
#include <assert.h>
int getch() 
{int c = 0;struct termios org_opts, new_opts;int res = 0;res = tcgetattr(STDIN_FILENO, &org_opts);assert(res == 0);new_opts = org_opts;new_opts.c_lflag &= ~(ICANON | ECHO);tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);c = getchar();res = tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);assert(res == 0);return c;
}
void password()
{char arr[6]={'1','2','3','4','5','6'};char pass[32]={0};int i=0;printf("請輸入密碼:");while(1){char c=getch();if(c=='\n'){break;}printf("*");pass[i++]=c;}int a=1;for(i=0;i<6;i++){int k=strlen(pass);if(k!=6){a=0;break;}else if(pass[i]!=arr[i]){a=0;break;}}    if(a){printf("\n密碼正確\n");}else{    printf("\n密碼錯誤,請重新輸入:\n");password();}fflush(stdin);
}
int main(int argc, char *argv[])
{password(); return 0;
}

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

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

相關文章

24.3.1 《CLR via C#》 筆記9

第十二章 泛型 泛型&#xff1a;支持泛型值類型、泛型引用類型、泛型接口、泛型委托&#xff1b;允許在引用類型、值類型和接口中定義泛型方法&#xff1b;泛型參數變量要么稱為T&#xff0c;要么以T開頭 具有泛型類型參數的類型稱為開放類型&#xff0c;不允許構造實例&#…

Java畢業設計 基于SpringBoot vue 社區團購系統

Java畢業設計 基于SpringBoot vue 社區團購系統 SpringBoot vue 社區團購系統 功能介紹 前端用戶: 首頁 圖片輪播 商品信息 商品分類展示 搜索 商品詳情 點我收藏 添加到購物車 立即購買 我要開團 去參團 評論 公告資訊 資訊詳情 登錄 注冊 個人中心 更新信息 點我充值 我的訂…

Mysql筆記3

1、快速創建表 原理&#xff1a; 將一個查詢結果當做一張表新建 這個可以完成表的快速復制 create table emp2 as select * from emp; mysql> select * from emp2; ---------------------------------------------------------------------- …

【vscode提取函數快捷鍵】提取函數,減少大方法的復雜度

在 Visual Studio Code 中&#xff0c;提取函數的快捷鍵取決于你所使用的編程語言和安裝的插件。以下是一些常用的快捷鍵組合&#xff0c;可以用來在 Visual Studio Code 中提取函數&#xff1a; 執行以下步驟來提取函數&#xff1a; 選中要提取的代碼塊。右鍵單擊選中的代碼…

System Verilog學習筆記(十二)——數組(2)

System Verilog學習筆記&#xff08;十二&#xff09;——數組&#xff08;2&#xff09; 動態數組 在編譯時不會為其定制尺寸&#xff0c;而是在仿真運行時來確定動態數組一開始為空&#xff0c;需要使用new[ ]來為其分配空間聲明方式 int dyn[],d2[]; //聲明了兩個動態數組…

git之遠程操作

一.分布式版本控制系統 分布式版本控制系統通常也有?臺充當“中央服務器”的電腦&#xff0c;但這個服務器的作?僅僅是?來?便“交換”?家的修改&#xff0c;沒有它?家也?樣?活&#xff0c;只是交換修改不?便?已。有了這個“中央服務器”的電腦&#xff0c;這樣就不怕…

ChatGPT學習第四周

&#x1f4d6; 學習目標 ChatGPT實踐操作 通過實際操作和練習&#xff0c;加深對ChatGPT功能的理解。 項目&#xff1a;創建一個ChatGPT應用案例 設計一個基于ChatGPT的小項目&#xff0c;將理論應用于實踐。 ?? 學習活動 學習資料 《萬字干貨&#xff01;ChatGPT 從零完…

[C++核心編程](一):內存分區

目錄 代碼區 全局區 棧區 堆區 new操作符 不同區域存放的數據&#xff0c;賦予不同的生命周期&#xff0c;給予開發人員更大的靈活編程。 代碼區 存放二進制代碼&#xff0c;由操作系統管理未執行程序&#xff08;.exe&#xff09;前已經存在共享&#xff0c;對頻繁執行…

達夢數據庫查詢語句內存溢出問題解決

背景&#xff1a;達夢數據庫使用過程中&#xff0c;某天突然服務宕機&#xff0c;導致各類后端服務無法注冊到nacos上&#xff0c;重啟之后nacos正常啟動&#xff0c;可執行一條兩千多條數據量的連表查詢時間很長&#xff0c;甚至會報錯&#xff0c;經查看日志發現在查詢過程中…

【C語言】常見的動態內存管理錯誤

前言 上一篇介紹了C語言中 動態內存管理函數&#xff0c;本片講解的是 在我們使用動態內存管理時 常見的錯誤&#xff0c;一起來看看吧~ 歡迎關注個人主頁&#xff1a;逸狼 創造不易&#xff0c;可以點點贊嗎~ 如有錯誤&#xff0c;歡迎指出~ 目錄 1.對NULL指針的解引?操作 錯…

什么是前端框架中的數據綁定(data binding)?有哪些類型的數據綁定?

聚沙成塔每天進步一點點 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 歡迎來到前端入門之旅&#xff01;感興趣的可以訂閱本專欄哦&#xff01;這個專欄是為那些對Web開發感興趣、剛剛踏入前端領域的朋友們量身打造的。無論你是完全的新手還是有一些基礎的開發…

YOLOv5白皮書-第Y4周:common.py文件解讀

YOLOv5白皮書-第Y4周:common.py文件解讀 YOLOv5白皮書-第Y4周:common.py文件解讀0.導入需要的包和基本配置1.基本組件1.1 autopad1.2 Conv1.3 Focus1.4 Bottleneck1.5 BottleneckCSP1.6 C31.7 SPP1.8 Concat1.9 Contract、Expand 2.重要類2.1 非極大值抑制&#xff08;NMS&…

vue3中的基本語法

目錄 基礎素材 vue3的優化 使用CompositionAPI理由 1. reactive() 函數 2. ref() 函數 2.1. ref的使用 2.2. 在 reactive 對象中訪問 ref 創建的響應式數據 3. isRef() 函數 4. toRefs() 函數 5. computed() 5.1. 通過 set()、get()方法創建一個可讀可寫的計算屬性 …

函數——遞歸6(c++)

角谷猜想 題目描述 日本一位中學生發現一個奇妙的 定理&#xff0c;請角谷教授證明&#xff0c;而教授 無能為力&#xff0c;于是產生了角谷猜想。 猜想的內容&#xff1a;任給一個自然數&#xff0c; 若為偶數則除以2&#xff0c;若為奇數則乘 3加1&#xff0c;得到一個新的…

git命令整理

一、什么是git Git 是為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。 分布式管理系統&#xff0c;可以快速的查看文件各個版本的改動。比如在第5行加了一個單詞“Linux”&#xff0c;在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進制文件&#xf…

PyTorch深度學習快速入門

PyTorch深度學習快速入門 1.PyTorch環境配置及安裝2.python編輯器的選擇、安裝、配置&#xff08;pycharm、JupyTer安裝&#xff09;3.為什么torch.cuda.is_available()返回false4.python學習中兩大法寶函數&#xff08;也可用在pytorch&#xff09;5.pycharm和jupyter&#xf…

golang goroutine 如何退出?

上一講說到調度器將maingoroutine推上舞臺&#xff0c;為它鋪好了道路&#xff0c;開始執行runtime.main函數。這一講&#xff0c;我們探索maingoroutine以及普通goroutine從執行到退出的整個過程。 //Themaingoroutine. funcmain(){ //gmaingoroutine&#xff0c;不再是g0了 …

Python列表中添加刪除元素不走彎路

1.append() 向列表中添加單個元素&#xff0c;一般用于尾部追加 list1 ["香妃", "乾隆", "賈南風", "趙飛燕", "漢武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 賈南風, 趙飛燕, 漢武帝, 周瑜]…

STM32標準庫——(14)I2C通信協議、MPU6050簡介

1.I2C通信 I2C 通訊協議(Inter&#xff0d;Integrated Circuit)是由Phiilps公司開發的&#xff0c;由于它引腳少&#xff0c;硬件實現簡單&#xff0c;可擴展性強&#xff0c; 不需要USART、CAN等通訊協議的外部收發設備&#xff0c;現在被廣泛地使用在系統內多個集成電路(IC)間…

【LeetCode每日一題】【BFS模版與例題】863.二叉樹中所有距離為 K 的結點

BFS的基本概念 BFS 是廣度優先搜索&#xff08;Breadth-First Search&#xff09;的縮寫&#xff0c;是一種圖遍歷算法。它從給定的起始節點開始&#xff0c;逐層遍歷圖中的節點&#xff0c;直到遍歷到目標節點或者遍歷完所有可達節點。 BFS 算法的核心思想是先訪問當前節點的…