學(xué)期2024-2025-1學(xué)號(hào)202413177 《計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)》第十四周學(xué)習(xí)總結(jié)
學(xué)期2024-2025-1學(xué)號(hào)202413177 《計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)》第十四周學(xué)習(xí)總結(jié)
作業(yè)信息
| 這個(gè)作業(yè)屬于哪個(gè)課程 | <班級(jí)的鏈接>(如2024-2025-1-計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)) |
|---|---|
| 這個(gè)作業(yè)要求在哪里 | <作業(yè)要求的鏈接>(如2024-2025-1計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)第一周作業(yè)) |
| 這個(gè)作業(yè)的目標(biāo) | <寫上具體方面> |
| 作業(yè)正文 | http://www.rzrgm.cn/manurios/p/18639504 |
教材學(xué)習(xí)內(nèi)容總結(jié)
C 語(yǔ)言程序設(shè)計(jì)第十三章總結(jié)
第十三章聚焦于 C 語(yǔ)言中至關(guān)重要的文件操作相關(guān)知識(shí),為 C 程序與外部存儲(chǔ)的數(shù)據(jù)交互提供了有力支撐。
一、文件基礎(chǔ)認(rèn)知
- 文件概念:
- 文件是存儲(chǔ)在外部介質(zhì)(如硬盤、U盤 等)上數(shù)據(jù)的有序集合。它是程序與外部世界進(jìn)行數(shù)據(jù)交換的重要手段,使得數(shù)據(jù)能夠持久保存,而非僅在程序運(yùn)行期間存在于內(nèi)存中。
- 分為文本文件和二進(jìn)制文件。文本文件以 ASCII 碼字符形式存儲(chǔ)數(shù)據(jù),每行以換行符‘\n’結(jié)尾,人眼可直接閱讀其內(nèi)容;二進(jìn)制文件則按照數(shù)據(jù)在內(nèi)存中的二進(jìn)制存儲(chǔ)形式原樣保存,對(duì)于非字符數(shù)據(jù)(如整數(shù)、浮點(diǎn)數(shù)的二進(jìn)制表示)存儲(chǔ)更為緊湊、高效,但直接查看內(nèi)容通常是亂碼形式。
- 文件指針:
- 核心工具是
FILE *類型的指針,它如同指向文件的“導(dǎo)航標(biāo)”。聲明方式如FILE *fp;,通過這個(gè)指針,程序可以精準(zhǔn)定位到文件內(nèi)部的各個(gè)位置,實(shí)現(xiàn)數(shù)據(jù)的讀寫操作。不同的文件操作函數(shù)都依賴文件指針來(lái)指定操作對(duì)象。
- 核心工具是
二、文件打開與關(guān)閉
- 打開文件:
- 使用
fopen函數(shù),語(yǔ)法為fp = fopen("文件名", "打開模式");。文件名需包含完整路徑(若為相對(duì)路徑,則相對(duì)于當(dāng)前程序運(yùn)行目錄),打開模式?jīng)Q定了對(duì)文件的操作權(quán)限及方式。例如:- “r”:只讀模式,用于打開已存在的文本文件,若文件不存在則打開失敗;
- “w”:只寫模式,若指定文件不存在則創(chuàng)建新文件,若存在則清空文件原有內(nèi)容;
- “a”:追加模式,在已有文件末尾添加新數(shù)據(jù),文件不存在時(shí)同樣會(huì)創(chuàng)建。
- 對(duì)于二進(jìn)制文件,模式字符后添加“b”,如“rb”“wb”“ab”,以表明處理二進(jìn)制數(shù)據(jù)。
- 使用
- 關(guān)閉文件:
- 務(wù)必使用
fclose(fp);關(guān)閉文件。這一步驟至關(guān)重要,它不僅能確保寫入的數(shù)據(jù)完整保存到文件中,還能釋放系統(tǒng)為文件操作分配的相關(guān)資源,避免資源泄露。若程序打開多個(gè)文件未正確關(guān)閉,可能導(dǎo)致系統(tǒng)資源耗盡,影響程序及系統(tǒng)的穩(wěn)定運(yùn)行。
- 務(wù)必使用
三、文件讀寫操作
- 按字符讀寫:
fgetc函數(shù)從文件指針指向的文件中讀取一個(gè)字符,語(yǔ)法為ch = fgetc(fp);,它返回讀取到的字符(以整數(shù)形式返回,可通過強(qiáng)制類型轉(zhuǎn)換為字符型),若遇到文件末尾則返回特殊值EOF(End Of File,在stdio.h中定義,通常值為 -1)。fputc函數(shù)用于向文件寫入一個(gè)字符,如fputc(ch, fp);,將字符ch寫入fp指向的文件。常用于逐個(gè)字符處理文本文件,比如復(fù)制文件內(nèi)容時(shí),可按字符依次讀取源文件并寫入目標(biāo)文件。
- 按字符串讀寫:
fgets函數(shù)能從文件讀取一行字符串,語(yǔ)法為fgets(str, n, fp);,其中str是存儲(chǔ)字符串的字符數(shù)組,n是最多讀取的字符數(shù)(包含‘\0’),它會(huì)讀取到換行符‘\n’或讀完n - 1個(gè)字符為止,讀取的內(nèi)容包含換行符(若有)并在末尾添加‘\0’。fputs函數(shù)將字符串寫入文件,如fputs(str, fp);,把字符數(shù)組str中的字符串(不包含‘\0’自動(dòng)添加)寫入fp指向的文件,常用于批量寫入文本行。
- 格式化讀寫:
- 類似于標(biāo)準(zhǔn)輸入輸出的
scanf和printf,fscanf和fprintf針對(duì)文件進(jìn)行格式化讀寫。fscanf(fp, "格式控制字符串", 地址列表);按照指定格式從文件讀取數(shù)據(jù)并存入相應(yīng)變量地址,fprintf(fp, "格式控制字符串", 表達(dá)式列表);則將數(shù)據(jù)按格式寫入文件。例如,從文件讀取整數(shù)和字符串:fscanf(fp, "%d %s", &num, str);,向文件寫入學(xué)生成績(jī)信息:fprintf(fp, "學(xué)號(hào):%s,成績(jī):%d\n", stu_id, score);,這對(duì)于處理結(jié)構(gòu)化數(shù)據(jù)文件極為便利。
- 類似于標(biāo)準(zhǔn)輸入輸出的
四、文件隨機(jī)讀寫
- 移動(dòng)文件指針:
fseek函數(shù)實(shí)現(xiàn)文件指針的定位移動(dòng),語(yǔ)法為fseek(fp, offset, origin);,其中fp是文件指針,offset是偏移量(以字節(jié)為單位,正數(shù)向前、負(fù)數(shù)向后移動(dòng)),origin是起始位置,有以下常量指定:SEEK_SET:文件開頭,偏移量從文件起始處計(jì)算;SEEK_CUR:當(dāng)前位置,基于當(dāng)前文件指針位置偏移;SEEK_END:文件末尾,常用于從文件末尾往前定位。例如,要跳轉(zhuǎn)到文件第 10 個(gè)字節(jié)處:fseek(fp, 10, SEEK_SET);。
- 獲取文件指針位置:
ftell函數(shù)返回文件指針當(dāng)前相對(duì)于文件開頭的偏移字節(jié)數(shù),如pos = ftell(fp);,常用于記錄當(dāng)前讀寫位置,以便后續(xù)操作回溯或判斷文件處理進(jìn)度。
通過對(duì)第十三章的學(xué)習(xí),掌握文件操作技能后,C 程序能夠?qū)崿F(xiàn)諸如數(shù)據(jù)的長(zhǎng)期存儲(chǔ)備份、配置文件的讀取與更新、復(fù)雜數(shù)據(jù)結(jié)構(gòu)的文件化存儲(chǔ)與讀取等功能,大幅拓寬了 C 語(yǔ)言編程的應(yīng)用場(chǎng)景,為開發(fā)實(shí)用、強(qiáng)大的軟件奠定基礎(chǔ)。
如果你對(duì)于總結(jié)中的知識(shí)點(diǎn)還有想要細(xì)化或者拓展的部分,隨時(shí)告訴我,我來(lái)繼續(xù)完善。
通過 AI 工具總結(jié)一下內(nèi)容,自己再補(bǔ)充
通過思維導(dǎo)圖形成知識(shí)體系
看懂就過,看不懂,學(xué)習(xí)有心得的記一下
教材學(xué)習(xí)中的問題和解決過程(先問 AI)
(一個(gè)模板:我看了這一段文字 (引用文字),有這個(gè)問題 (提出問題)。 我查了資料,有這些說(shuō)法(引用說(shuō)法),根據(jù)我的實(shí)踐,我得到這些經(jīng)驗(yàn)(描述自己的經(jīng)驗(yàn))。 但是我還是不太懂,我的困惑是(說(shuō)明困惑)。【或者】我反對(duì)作者的觀點(diǎn)(提出作者的觀點(diǎn),自己的觀點(diǎn),以及理由)。 )
- 問題1:文件指針的作用是什么?
- 問題1解決方案:1. 定位文件位置
- 文件指針就像一個(gè)“書簽”,它能夠指出在文件中的具體位置。當(dāng)打開一個(gè)文件后,文件指針初始時(shí)通常指向文件的開頭。通過移動(dòng)文件指針,可以在文件的不同位置進(jìn)行讀寫操作。例如,在順序讀取一個(gè)文件時(shí),文件指針會(huì)隨著讀取操作逐步向后移動(dòng),每次讀取一個(gè)字符、一行字符串或者按照某種格式讀取數(shù)據(jù)后,指針都會(huì)移動(dòng)到下一個(gè)待讀取的位置。
- 可以使用
fseek函數(shù)來(lái)手動(dòng)調(diào)整文件指針的位置。比如,有一個(gè)存儲(chǔ)學(xué)生成績(jī)的文件,文件格式為每個(gè)學(xué)生的信息占一行,包括姓名、學(xué)號(hào)和成績(jī)。如果想要修改某個(gè)特定學(xué)生的成績(jī),就可以先通過一定的方式(如逐行讀取并匹配學(xué)號(hào))找到對(duì)應(yīng)的行,然后使用fseek函數(shù)將文件指針定位到該行成績(jī)數(shù)據(jù)的起始位置,再進(jìn)行修改。
- 關(guān)聯(lián)文件操作函數(shù)與文件實(shí)體
- 文件指針是C語(yǔ)言文件操作函數(shù)與實(shí)際文件之間的紐帶。所有的文件讀寫操作函數(shù)(如
fgetc、fputc、fgets、fputs、fscanf和fprintf等)都需要通過文件指針來(lái)確定操作的對(duì)象是哪一個(gè)文件。 - 例如,在程序中可能同時(shí)打開了多個(gè)文件,一個(gè)用于讀取配置信息,一個(gè)用于記錄日志。這時(shí)候就需要不同的文件指針來(lái)區(qū)分這些文件。假設(shè)有
FILE *fp_config和FILE *fp_log兩個(gè)文件指針,fp_config指向配置文件,fp_log指向日志文件。當(dāng)使用fgets函數(shù)讀取配置文件內(nèi)容時(shí),就會(huì)寫成fgets(buffer, size, fp_config),而當(dāng)需要將日志信息寫入日志文件時(shí),就會(huì)使用fputs(log_message, fp_log),這樣就能夠保證各個(gè)文件操作函數(shù)準(zhǔn)確地作用于相應(yīng)的文件。
- 文件指針是C語(yǔ)言文件操作函數(shù)與實(shí)際文件之間的紐帶。所有的文件讀寫操作函數(shù)(如
- 方便文件的管理和操作流程控制
- 在復(fù)雜的文件處理場(chǎng)景中,文件指針可以幫助控制文件操作的流程。比如,在處理一個(gè)大型文件時(shí),可以通過保存文件指針的位置來(lái)實(shí)現(xiàn)文件部分內(nèi)容的重復(fù)讀取或?qū)懭搿?/li>
- 假設(shè)要對(duì)一個(gè)文本文件進(jìn)行加密處理,在加密過程中,可能需要先讀取一部分內(nèi)容進(jìn)行加密,然后將加密后的內(nèi)容寫回文件。這時(shí)可以先記錄文件指針的初始位置,加密完一部分內(nèi)容后,將文件指針移回初始位置,然后進(jìn)行寫回操作,從而保證文件內(nèi)容的正確更新。同時(shí),通過判斷文件指針是否到達(dá)文件末尾(如通過
fgetc返回EOF來(lái)判斷),可以控制循環(huán)讀取文件的過程,避免出現(xiàn)超出文件范圍的錯(cuò)誤操作。
- 問題2:文件包含什么?
- 問題2解決方案:1. 文本文件內(nèi)容
- 字符數(shù)據(jù):文本文件主要包含字符。這些字符可以是字母(如英文字母A - Z、a - z)、數(shù)字(0 - 9)、標(biāo)點(diǎn)符號(hào)(如逗號(hào)、句號(hào)、分號(hào)等)和特殊字符(如換行符'\n'、制表符'\t'等)。例如,一個(gè)簡(jiǎn)單的文本文件可能包含一篇文章,其中有單詞、句子、段落等,這些都是由字符組成的。
- 文本行結(jié)構(gòu):文本文件通常以行為單位組織內(nèi)容。每行以換行符'\n'結(jié)尾,這使得文件內(nèi)容在視覺上呈現(xiàn)出一行一行的形式。例如,在一個(gè)記錄學(xué)生名單的文本文件中,每行可能記錄一個(gè)學(xué)生的姓名、學(xué)號(hào)等信息,通過換行符來(lái)區(qū)分不同的學(xué)生記錄。
- 編碼格式相關(guān)字符:文本文件的字符編碼也會(huì)影響其內(nèi)容。常見的編碼格式有ASCII、UTF - 8等。在ASCII編碼中,每個(gè)字符用7位或8位二進(jìn)制數(shù)表示,涵蓋了基本的英文字母、數(shù)字和標(biāo)點(diǎn)符號(hào)等。UTF - 8是一種可變長(zhǎng)度的編碼方式,可以表示全球多種語(yǔ)言的字符。例如,在一個(gè)包含多種語(yǔ)言文字(如中文、日文、英文)的文本文件中,就需要使用UTF - 8這樣的編碼格式來(lái)正確存儲(chǔ)字符。
- 二進(jìn)制文件內(nèi)容
- 原始數(shù)據(jù)表示:二進(jìn)制文件包含的數(shù)據(jù)是以其在內(nèi)存中的二進(jìn)制存儲(chǔ)形式直接保存的。對(duì)于整數(shù)、浮點(diǎn)數(shù)等數(shù)據(jù)類型,它們?cè)诙M(jìn)制文件中的存儲(chǔ)方式與在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)方式相同。例如,一個(gè)整數(shù)
int num = 123;在內(nèi)存中是以二進(jìn)制形式存儲(chǔ)的,當(dāng)將這個(gè)整數(shù)存儲(chǔ)到二進(jìn)制文件中時(shí),也是按照這個(gè)二進(jìn)制形式進(jìn)行存儲(chǔ)。 - 數(shù)據(jù)結(jié)構(gòu)和對(duì)象存儲(chǔ):二進(jìn)制文件還可以用于存儲(chǔ)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和對(duì)象。例如,一個(gè)結(jié)構(gòu)體數(shù)組可以直接存儲(chǔ)到二進(jìn)制文件中。假設(shè)有一個(gè)結(jié)構(gòu)體
struct Student{char name[20]; int age; float score;};,一個(gè)包含多個(gè)Student結(jié)構(gòu)體的數(shù)組可以通過一定的文件操作(如fwrite)以二進(jìn)制形式存儲(chǔ)到文件中,這樣可以高效地保存和恢復(fù)數(shù)據(jù)結(jié)構(gòu)的完整信息。 - 非字符數(shù)據(jù)類型組合:二進(jìn)制文件中可能包含多種非字符數(shù)據(jù)類型的組合。例如,一個(gè)圖形文件可能包含圖像的像素?cái)?shù)據(jù)(以二進(jìn)制形式表示顏色值)、圖像的尺寸信息(整數(shù)表示寬度和高度)等。這些不同類型的數(shù)據(jù)按照一定的順序和格式存儲(chǔ)在二進(jìn)制文件中,用于完整地描述圖形的信息。
- 原始數(shù)據(jù)表示:二進(jìn)制文件包含的數(shù)據(jù)是以其在內(nèi)存中的二進(jìn)制存儲(chǔ)形式直接保存的。對(duì)于整數(shù)、浮點(diǎn)數(shù)等數(shù)據(jù)類型,它們?cè)诙M(jìn)制文件中的存儲(chǔ)方式與在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)方式相同。例如,一個(gè)整數(shù)
- ...
基于AI的學(xué)習(xí)
- 問題1:文件指針和指針文件的區(qū)別?
- 問題1解決方案:1. 文件指針(File Pointer)
- 定義和本質(zhì):
- 文件指針是一個(gè)指向
FILE類型結(jié)構(gòu)體的指針。在C語(yǔ)言中,FILE是一個(gè)包含了文件相關(guān)信息(如文件緩沖區(qū)的位置、文件當(dāng)前讀寫位置、文件的打開模式等)的結(jié)構(gòu)體。例如,當(dāng)聲明FILE *fp;時(shí),fp就是一個(gè)文件指針,它用于在程序中操作文件。 - 它是一種變量類型,其主要作用是幫助程序定位和訪問文件內(nèi)部的不同位置,從而實(shí)現(xiàn)文件的讀寫操作。文件指針類似于一個(gè)導(dǎo)航工具,引導(dǎo)程序在文件這個(gè)“數(shù)據(jù)海洋”中找到要操作的具體位置。
- 文件指針是一個(gè)指向
- 用途和操作方式:
- 文件指針用于各種文件操作函數(shù),如
fopen、fclose、fgetc、fputc、fgets、fputs、fscanf和fprintf等。例如,fp = fopen("test.txt", "r");使用fopen函數(shù)打開一個(gè)名為test.txt的文件,并將返回的文件指針賦值給fp,之后就可以通過fp這個(gè)文件指針使用其他文件操作函數(shù)對(duì)文件進(jìn)行操作。 - 通過移動(dòng)文件指針(例如使用
fseek函數(shù)),可以在文件中進(jìn)行隨機(jī)讀寫。比如,fseek(fp, 10, SEEK_SET);可以將文件指針從文件開頭向后移動(dòng)10個(gè)字節(jié)的位置,這樣后續(xù)的讀寫操作就會(huì)從這個(gè)新位置開始。
- 文件指針用于各種文件操作函數(shù),如
- 定義和本質(zhì):
- 指針文件(這個(gè)說(shuō)法不太準(zhǔn)確,推測(cè)可能是誤解,也許是指向文件的指針相關(guān)概念或者含有指針的文件內(nèi)容)
- 如果是指向文件的指針相關(guān)概念(正確表述還是文件指針):
- 如前面所述,重點(diǎn)在于利用指針來(lái)操作文件,通過對(duì)文件指針的各種操作來(lái)完成對(duì)文件的訪問和處理。
- 如果是含有指針的文件內(nèi)容(這是一種比較特殊的情況):
- 在C語(yǔ)言中,如果要將指針存儲(chǔ)到文件中,情況會(huì)比較復(fù)雜。因?yàn)橹羔樀闹凳且粋€(gè)內(nèi)存地址,當(dāng)把這個(gè)指針存儲(chǔ)到文件中再讀取出來(lái)時(shí),這個(gè)內(nèi)存地址可能已經(jīng)無(wú)效(例如程序重新運(yùn)行后,之前的內(nèi)存分配情況發(fā)生了變化)。
- 不過,在某些特定場(chǎng)景下,比如存儲(chǔ)一個(gè)指向動(dòng)態(tài)分配內(nèi)存區(qū)域的指針(例如一個(gè)鏈表結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)在文件中),需要謹(jǐn)慎處理。通常會(huì)先將指針?biāo)赶虻臄?shù)據(jù)(如鏈表節(jié)點(diǎn)中的數(shù)據(jù))按照一定的規(guī)則存儲(chǔ)到文件中,并且可能需要記錄一些額外的信息來(lái)幫助在讀取文件時(shí)重新構(gòu)建指針關(guān)系。這種情況下,文件內(nèi)容包含了一些可以用于恢復(fù)指針指向的數(shù)據(jù)結(jié)構(gòu)的信息,但這和文件指針本身的概念是不同的,文件指針主要用于文件操作過程中的定位,而含有指針的文件內(nèi)容涉及到數(shù)據(jù)結(jié)構(gòu)在文件中的存儲(chǔ)和恢復(fù)。
- 如果是指向文件的指針相關(guān)概念(正確表述還是文件指針):
- 問題2:fget和fscanf的區(qū)別?
- 問題2解決方案:1. 區(qū)別
- 數(shù)據(jù)讀取方式
- fgetc:它是以字符為單位進(jìn)行讀取。每次調(diào)用
fgetc函數(shù),只會(huì)從文件中讀取一個(gè)字符。例如,如果有一個(gè)文本文件test.txt,內(nèi)容是“Hello”,使用fgetc讀取時(shí),需要多次調(diào)用才能逐個(gè)獲取字符'H'、'e'、'l'、'l'、'o'。它返回的是讀取到的字符的ASCII碼值(在stdio.h中定義為int類型),當(dāng)讀取到文件末尾時(shí)返回EOF(通常是 - 1)。 - fscanf:則是按照指定的格式進(jìn)行讀取。它可以根據(jù)格式化字符串來(lái)讀取不同類型的數(shù)據(jù),如整數(shù)、浮點(diǎn)數(shù)、字符串等。例如,對(duì)于文件中有格式為“123 name”的數(shù)據(jù)行,使用
fscanf(fp, "%d %s", &num, name);可以一次性將整數(shù)123讀取到變量num中,將字符串“name”讀取到字符數(shù)組name中。
- fgetc:它是以字符為單位進(jìn)行讀取。每次調(diào)用
- 對(duì)文件內(nèi)容格式的要求
- fgetc:對(duì)文件內(nèi)容格式要求較低,因?yàn)樗皇侵饌€(gè)讀取字符,幾乎可以處理任何文本文件,不管文件內(nèi)容是有規(guī)則的格式化數(shù)據(jù)還是無(wú)規(guī)則的文本內(nèi)容。例如,對(duì)于一個(gè)包含小說(shuō)內(nèi)容的文本文件,
fgetc可以很好地逐字符讀取用于顯示或其他簡(jiǎn)單處理。 - fscanf:要求文件內(nèi)容必須符合其指定的格式。如果文件內(nèi)容格式與
fscanf函數(shù)中的格式化字符串不匹配,會(huì)導(dǎo)致讀取錯(cuò)誤。例如,若格式化字符串是%d,但文件中的下一個(gè)數(shù)據(jù)是一個(gè)字符而不是整數(shù),就會(huì)出現(xiàn)讀取問題。
- fgetc:對(duì)文件內(nèi)容格式要求較低,因?yàn)樗皇侵饌€(gè)讀取字符,幾乎可以處理任何文本文件,不管文件內(nèi)容是有規(guī)則的格式化數(shù)據(jù)還是無(wú)規(guī)則的文本內(nèi)容。例如,對(duì)于一個(gè)包含小說(shuō)內(nèi)容的文本文件,
- 使用場(chǎng)景和靈活性
- fgetc:適用于簡(jiǎn)單地處理文本文件,如復(fù)制文件內(nèi)容、統(tǒng)計(jì)文件字符數(shù)等場(chǎng)景。例如,要編寫一個(gè)程序來(lái)統(tǒng)計(jì)文件中某個(gè)字符出現(xiàn)的次數(shù),使用
fgetc就很方便。它在處理字符流時(shí)比較靈活,不需要提前知道文件內(nèi)容的格式。 - fscanf:更適合讀取有固定格式的數(shù)據(jù)文件,如配置文件(格式可能是“key = value”)、數(shù)據(jù)記錄文件(如“學(xué)號(hào) 姓名 成績(jī)”)等。它能夠直接將文件中的數(shù)據(jù)按照預(yù)定格式解析到變量中,方便進(jìn)行后續(xù)的數(shù)據(jù)處理,但靈活性相對(duì)較差,因?yàn)楦袷揭坏┐_定,文件內(nèi)容格式必須與其匹配。
- fgetc:適用于簡(jiǎn)單地處理文本文件,如復(fù)制文件內(nèi)容、統(tǒng)計(jì)文件字符數(shù)等場(chǎng)景。例如,要編寫一個(gè)程序來(lái)統(tǒng)計(jì)文件中某個(gè)字符出現(xiàn)的次數(shù),使用
- 數(shù)據(jù)讀取方式
- 聯(lián)系
- 都是文件讀取函數(shù):它們都是用于從文件中讀取數(shù)據(jù)的函數(shù),都需要一個(gè)有效的文件指針作為參數(shù)來(lái)指定要讀取的文件。例如,在使用
fgetc(fp)和fscanf(fp, "格式字符串", 變量地址列表)時(shí),fp都是指向要讀取文件的文件指針。 - 可以配合使用:在一些復(fù)雜的文件讀取場(chǎng)景中,它們可以配合使用。例如,先使用
fgetc函數(shù)讀取文件的開頭部分,判斷文件的類型或者格式(比如通過讀取文件頭幾個(gè)字符來(lái)判斷是二進(jìn)制文件還是文本文件),然后根據(jù)判斷結(jié)果使用fscanf來(lái)按照合適的格式讀取文件內(nèi)容。或者在讀取一個(gè)包含多種數(shù)據(jù)類型和格式的文件時(shí),先用fgetc跳過一些不需要的字符部分,再使用fscanf讀取關(guān)鍵的數(shù)據(jù)部分。
- 都是文件讀取函數(shù):它們都是用于從文件中讀取數(shù)據(jù)的函數(shù),都需要一個(gè)有效的文件指針作為參數(shù)來(lái)指定要讀取的文件。例如,在使用
三個(gè)原則:
- 切勿原封不動(dòng)地接受生成式人工智能工具的輸出;確保對(duì)其進(jìn)行評(píng)估、完善和修改(或提示),以適應(yīng)您的目標(biāo)。
- 切勿將任何個(gè)人數(shù)據(jù)(自己、同學(xué)、老師等)或版權(quán)材料納入到你的提示詞中。這個(gè)可以說(shuō)是保護(hù)個(gè)人隱私的最起碼的舉措。
- 所有人工智能生成工具都容易產(chǎn)生幻覺,因此會(huì)生成不準(zhǔn)確或誤導(dǎo)性的信息,要學(xué)會(huì)甄別信息真假
選擇至少2個(gè)知識(shí)點(diǎn)利用chatgpt等工具進(jìn)行蘇格拉底挑戰(zhàn),并提交過程截圖,提示過程參考下面內(nèi)容
“我在學(xué)***X知識(shí)點(diǎn),請(qǐng)你以蘇格拉底的方式對(duì)我進(jìn)行提問,一次一個(gè)問題”
核心是要求GPT:“請(qǐng)你以蘇格拉底的方式對(duì)我進(jìn)行提問”
然后GPT就會(huì)給你提問,如果不知道問題的答案,可以反問AI:“你的理解(回答)是什么?”
如果你覺得差不多了,可以先問問GPT:“針對(duì)我XXX知識(shí)點(diǎn),我理解了嗎?”
GPT會(huì)給出它的判斷,如果你也覺得自己想清楚了,可以最后問GPT:“我的回答結(jié)束了,請(qǐng)對(duì)我的回答進(jìn)行評(píng)價(jià)總結(jié)”,讓它幫你總結(jié)一下。
代碼調(diào)試中的問題和解決過程
- 問題1:XXXXXX
- 問題1解決方案:XXXXXX
- 問題2:XXXXXX
- 問題2解決方案:XXXXXX
- ...
代碼托管
(statistics.sh腳本的運(yùn)行結(jié)果截圖)
上周考試錯(cuò)題總結(jié)
- 錯(cuò)題1及原因,理解情況
- 錯(cuò)題2及原因,理解情況
- ...
其他(感悟、思考等,可選)
xxx
xxx
學(xué)習(xí)進(jìn)度條
| 代碼行數(shù)(新增/累積) | 博客量(新增/累積) | 學(xué)習(xí)時(shí)間(新增/累積) | 重要成長(zhǎng) | |
|---|---|---|---|---|
| 目標(biāo) | 5000行 | 30篇 | 400小時(shí) | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 |
嘗試一下記錄「計(jì)劃學(xué)習(xí)時(shí)間」和「實(shí)際學(xué)習(xí)時(shí)間」,到期末看看能不能改進(jìn)自己的計(jì)劃能力。這個(gè)工作學(xué)習(xí)中很重要,也很有用。
耗時(shí)估計(jì)的公式
:Y=X+X/N ,Y=X-X/N,訓(xùn)練次數(shù)多了,X、Y就接近了。
參考:軟件工程軟件的估計(jì)為什么這么難,軟件工程 估計(jì)方法
-
計(jì)劃學(xué)習(xí)時(shí)間:XX小時(shí)
-
實(shí)際學(xué)習(xí)時(shí)間:XX小時(shí)
-
改進(jìn)情況:
(有空多看看現(xiàn)代軟件工程 課件
軟件工程師能力自我評(píng)價(jià)表)

浙公網(wǎng)安備 33010602011771號(hào)