本週大頭作業 使用c語言對TXT檔案的控制

2022-05-31 12:21:08 字數 1740 閱讀 1394

本次課程與作業首次涉及到了c語言對自己檔案的控制,由於使用了指標,所以首觸指針對我們來說時比較麻煩而又困難,不過問題不會很大,因為書本上已經有乙個相關的模板供我們參考,但是需要仔細分析,謹慎入坑!不懼入坑!話不多說了,直接進入試題!

一.試題:

請在第一周作業的基礎上,繼續完成:找出給定的檔案中陣列的最大值及其對應的最小下標(下標從0開始)。並將最大值和對應的最小下標數值寫入檔案。

輸入:請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。

輸出在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入檔案。

二.分析:之前我們是在c語言編輯器中將題目要求完成,但是這次作業需要我們利用c語言編輯器對txt檔案編輯板進行控制以完成任務!

三.先依照教材上的模板寫上**:

#include#include#includeint main()

scanf("%d",&n);

for(i=0;imax)

max=a[i];

biao=i;

} fprintf("%d %d",max,biao);

if(fclose(fp))

return 0;

}

四.報錯截圖:

問題果然出現

五.問題解決:開啟檔案錯誤,此處也許是多數同學碰到的問題,無法開啟檔案,究其根源,花了半小時才發現if((fp=fopen("d:\wonzenkei.txt","r"))==null)後多了一「;」號

六.大功告成時才發現,如圖:

原有的txt文件已被更改,原輸入的幾個數已不存在,只輸出了題中要求的最大數與下標

六.問題解決:除錯**發現,主**中只有scanf,主**並沒有與txt文字檔案相掛鉤,也許這就是導致txt文字檔案內容被更改的原因

七.到最後的一步了,是時候要解決問題了!在**中鍵入fscanf(fp,"%d",&a[i])還有在for迴圈中需要鍵入fprintf(fp,"%d",a[i]);據本人推測因為使用c語言控制txt文字時,文字可能已經發生了更改,必須要使用該行**,才以確保c語言編輯框中的內容再次與txt文字相同步!

八 .再次附上修改後的**:

#include// 此處強烈建議大家使用c++萬能標頭檔案的開頭,因為它所包含的庫函式是很多的,所以使用該開頭能為大家省去很多的麻煩!!

int main()

scanf("%d",&n);

fprintf(fp,"%d\n",n);//此處一定需要fprintf,作用在第七步已說明

for(i=0;i九.思維流程圖:

十.總結:此處需要明白,fprintf,代表在資料txt文字中列印,fscanf代表在資料txt文字中輸入,其他暫時便沒有想到什麼東西了,閒餘時間再好好多學習一下相關的檔案指標方面知識吧

由於我名字粵語讀法是wonzenkei,所以我下意識地把檔名寫成了wonzenkei.txt

十 一.學習總結

使用vs2008實現C語言對Python2的擴充套件

1.c include python.h 包含了一些常用的標頭檔案 int fac int n static pyobject extest fac pyobject self,pyobject args return py buildvalue i fac num char reverse cha...

使用C語言對字串操作的分裝

使用c語言對字串操作的分裝 封裝字串函式 include 字串.h 拷貝字串 追加到乙個字串中 char mystrcat char dest,const char copystring else while copystring 0 dest 0 return first addr 在尾部增加字元...

舉例講解C語言對歸併排序演算法的基礎使用

基礎概念 百科是這麼描述歸併排序的 歸併操作 merge 也叫歸併演算法,指的是將兩個已經排序的序列合併成乙個序列的操作。設有數列 初始狀態 6 202 100 301 38 8 1 比較次數 nbcgacrkhsp i 1 6 202 100 301 8 38 1 3 i 2 6 100 202 ...