C //例10.5 有一個磁盤文件,內有一些信息。要求第1次將它的內容顯示在屏幕上,第2次把它復制到另一文件上。

C程序設計 (第四版) 譚浩強 例10.5

例10.5 有一個磁盤文件,內有一些信息。要求第1次將它的內容顯示在屏幕上,第2次把它復制到另一文件上。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差異。

?

代碼塊
方法:使用指針,函數的模塊化設計,動態分配內存
說明:這里準備先寫入的文件名稱為Test.txt,準備復制到Test1.txt文件中,文件都已經存在于該項目目錄下。
#include <stdio.h>
#include <stdlib.h>void initialVar(char **name1, char **name2){*name1 = (char*)malloc(80 * sizeof(char));*name2 = (char*)malloc(80 * sizeof(char));
}void inputFileName(FILE **file, char *name, int num){printf("Enter File%d Name: ", num);scanf("%s", name);char *sign = '\0';if(num == 1){sign = "r";}if(num == 2){sign = "w";}*file = fopen(name, sign);if(*file == NULL){perror("Cannot open this file");system("pause");exit(0);}
}void inputFile(FILE **file, char *name){*file = fopen(name, "w+");char ch = getchar();printf("Enter String (End with EOF): ");while((ch = getchar()) != EOF){fputc(ch, *file);}printf("\n");fclose(*file);
}void outputFile(FILE **file, char *name){*file = fopen(name, "r");if(*file == NULL){perror("Cannot open this file");system("pause");exit(0);}while(!feof(*file)){putchar(fgetc(*file));}putchar(10);
}void fileCopy(FILE **file1, FILE **file2, char *name1, char *name2){rewind(*file1);char ch = getchar();while(!feof(*file1)){ch = fgetc(*file1);fputc(ch, *file2);putchar(ch);}fclose(*file1);fclose(*file2);putchar(10);
}void freeVar(char **name1, char **name2){free(*name1);free(*name2);
}int main(){FILE *file1 = NULL;FILE *file2 = NULL;char *name1 = NULL;char *name2 = NULL;initialVar(&name1, &name2);inputFileName(&file1, name1, 1);inputFile(&file1, name1);outputFile(&file1, name1);inputFileName(&file2, name2, 2);fileCopy(&file1, &file2, name1, name2);freeVar(&name1, &name2);system("pause");return 0;
}
運行結果如下:

在這里插入圖片描述

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

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

相關文章

mysql支持的整數類型、各類型整數能夠表示的數值范圍

MySQL :: MySQL 8.2 Reference Manual :: 11.1.2 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT mysql支持的整數有&#xff1a;TINYINT、SMALLINT、MEDIUMINT、INT&#xff08;INT和INTEGER是同義詞&#xff09;、BIGINT&#xff0c;各…

【C#】序列化和反序列化,以及System.Text.Json和Newtonsoft.Json比較

給自己一個目標&#xff0c;然后堅持一段時間&#xff0c;總會有收獲和感悟&#xff01; 序列化和反序列化&#xff0c;在實際項目開發過程中用的最多。特別是有對接接口的小伙伴就深有體會。本篇文章就簡單聊聊這個知識點。 目錄 一、基本概念1.1、序列化1.2反序列化1.3、舉例…

AI 賦能 | 智能制造的 AI 算法開發和工程實現

談到智能制造、智慧工廠&#xff0c;愿景是美好的&#xff0c;借助計算機視覺技術和 AI 算法&#xff0c;為自動化生產線賦予環境感知的能力&#xff0c;從而改善工藝流程&#xff0c;提高生產效率。但是&#xff0c;隨著柔性化生產的需求增長&#xff0c;產線的布局調整和功能…

鎖的策略及synchronized詳解

加鎖過程中&#xff0c;處理沖突的過程中&#xff0c;涉及到的一些不同的處理方式。鎖的策略決定了線程如何獲取和釋放鎖以及在何種情況下阻塞和喚醒線程。 1. 常見的鎖策略 1.1 樂觀鎖和悲觀鎖 樂觀鎖&#xff1a;在加鎖之前&#xff0c;預估當前出現鎖沖突的概率不大&am…

Docker三 | 數據卷

目錄 Docker數據卷簡介 添加數據卷的命令 容器數據卷的繼承 Docker數據卷簡介 Docker容器產生的數據&#xff0c;如果不備份&#xff0c;當容器實例刪除后&#xff0c;容器中的數據也會消失&#xff0c;為了保存數據可以在Docker中使用數據卷。Docker數據卷是宿主機的一個可以…

vue3中子組件調用父組件的方法

<script lang"ts" setup>前提 父組件&#xff1a; 子組件&#xff1a; const emit defineEmits([closeson]) 在子組件的方法中使用&#xff1a; emit(closeson)

EP15:動態內存管理概述(c語言)malloc,calloc,realloc函數的介紹使用及柔性數組的介紹

如果學習方向是c方向那么c語言有三個板塊的知識是非常重要的. 1:指針 2:結構體 3;動態內存管理. 序言:在c語言中,什么是動態內存 C語言中的動態內存是指在程序運行時&#xff0c;根據需要動態地分配內存空間的一種內存管理方式。與靜態內存相比&#xff0c;動態內存的大小和生…

12.ROS導航模塊:gmapping、AMCL、map_server、move_base案例

目錄 1 導航概述 2 導航簡介 2.1 導航模塊簡介 1.全局地圖 2.自身定位 3.路徑規劃 4.運動控制 5.環境感知 2.2 導航坐標系odom、map 1.簡介 2.特點 3.坐標系變換 2.3 導航條件說明 1.硬件 2.軟件 3 導航實現 3.1 創建本篇博客的功能包 3.2 建圖--gmapping 3.…

JavaScript基礎知識整理(最全知識點, 精簡版,0基礎版)

文章目錄 一、輸入和輸出內容 1.1 輸出 1.1.1 在瀏覽器的控制臺輸出打印 1.1.2 直接在瀏覽器的頁面上輸出內容 1.1.3 頁面彈出警告對話框 1.2 輸入 二、變量 2.1 變量是什么 2.2 變量的聲明和賦值 2.3 變量的命名規范和規范 三、變量擴展&#xff08;數組&#xff09; 3.1 數組…

Cypress:前端自動化測試的終極利器

引言&#xff1a; 在現代軟件開發中&#xff0c;前端自動化測試已經成為了一個不可或缺的環節。它不僅可以提高開發效率&#xff0c;減少手動測試的工作量&#xff0c;還可以保證軟件的穩定性和質量。而在眾多的前端自動化測試工具中&#xff0c;Cypress無疑是其中的佼佼者。本…

openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷

文章目錄 openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷144.1 背景信息144.2 前提條件 openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷 144.1 背景信息 在SQL語句執行性能不符合預期時&#xff0c;可以查看SQL語句執行信息&#xff0c;便…

文章解讀與仿真程序復現思路——中國電機工程學報EI\CSCD\北大核心《考慮垃圾處理與調峰需求的可持續化城市多能源系統規劃》

這個標題涵蓋了城市多能源系統規劃中的兩個重要方面&#xff1a;垃圾處理和調峰需求&#xff0c;并強調了規劃的可持續性。 考慮垃圾處理&#xff1a; 含義&#xff1a; 垃圾處理指的是城市廢棄物的管理和處置。這可能涉及到廢物分類、回收利用、焚燒或填埋等方法。重要性&…

GIS入門,Leaflet介紹,Leaflet可以做什么,網頁中如何使用Leaflet地圖,vue中如何使用Leaflet地圖

VueLeafLet教程推薦&#xff1a;《VueLeaflet入門》 Leaflet介紹 Leaflet是一個開源的JavaScript庫&#xff0c;用于創建交互式的地圖和地圖應用。Leaflet框架具有輕量級、靈活性強、易于使用和擴展等特點&#xff0c;支持各種地圖服務商&#xff08;如OpenStreetMap、Google…

前端知識筆記(三十八)———HTTPS:保護網絡通信安全的關鍵

當談到網絡通信和數據傳輸時&#xff0c;安全性是一個至關重要的問題。在互聯網上&#xff0c;有許多敏感信息需要通過網絡進行傳輸&#xff0c;例如個人身份信息、銀行賬戶信息和商業機密等。為了保護這些信息不被未經授權的人訪問和篡改&#xff0c;HTTPS&#xff08;超文本傳…

【開源】基于Vue+SpringBoot的河南軟件客服系統

文末獲取源碼&#xff0c;項目編號&#xff1a; S 067 。 \color{red}{文末獲取源碼&#xff0c;項目編號&#xff1a;S067。} 文末獲取源碼&#xff0c;項目編號&#xff1a;S067。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 系統管理人員2.2 業務操作人員 三、…

搞懂內存函數

引言 本文介紹memcpy的使用和模擬實現、memmove的使用和模擬實現、memcmp使用、memset使用 ? 豬巴戒&#xff1a;個人主頁? 所屬專欄&#xff1a;《C語言進階》 &#x1f388;跟著豬巴戒&#xff0c;一起學習C語言&#x1f388; 目錄 引言 memcpy memcpy的使用 memcpy的…

JS加密/解密之HOOK實戰2

上一篇文章介紹了HOOK常規的應用場景&#xff0c;這篇我們講一下HOOK其他原生函數。又是一個新的其他思路 很多時候&#xff0c;當我們想要某些網站的請求參數的時候&#xff0c;因為某些加密導致了獲取起來很復雜。 這時候hook就十分方便了 源代碼 var _JSON_Parse JSON.…

scp 指令詳細介紹

目錄 1. 基本語法 2. 例子 從本地到遠程 從遠程到本地 從遠程到遠程 使用端口和指定私鑰 遞歸復制目錄 3. 注意事項 如何拷貝文件的軟鏈接 SCP&#xff08;Secure Copy Protocol&#xff09;是一種用于在計算機之間安全地傳輸文件的協議。它通過加密的方式在網絡上安全…

Vue:Vue的開發者工具不顯示Vue實例中的data數據

一、情況描述 代碼&#xff1a; 頁面&#xff1a; 可以看到&#xff0c;input獲取到了data數據&#xff0c;但是&#xff0c;vue-devtool沒有獲取到data數據 二、解決辦法 解決辦法1&#xff1a; data.name的值不能全是中文&#xff0c;比如改成aa尚硅谷 解決辦法2&…

C語言 編程題

C語言學習&#xff01; 1.小明上課需要走n階臺階&#xff0c;他每次可以選擇走一階或者走兩階&#xff0c;他一共有多少種走法&#xff1f; 輸入描述&#xff1a;輸入包含一個整數n&#xff08;1 ≤ n ≤30&#xff09; 輸出描述&#xff1a;輸出一個整數&#xff0c;即小明可…