第13章 檔案輸入 輸出(待續)

2021-09-10 16:35:21 字數 1307 閱讀 1215

1.修改程式清單13.1中的程式,要求提示使用者輸入檔名,並讀取使用者輸入的資訊,不使用命令列引數。

2。編寫乙個檔案拷貝程式,該程式通過獲取命令列獲取源檔名和拷貝檔名。盡量使用標準i/o和二進位制模式。

3.編寫乙個檔案拷貝程式,提示使用者輸入文字檔案名,並以該檔名作為源檔名和輸出檔名。該程式要使用cytpe.h中的toupper()函式,在寫入到輸出檔案時把所有文字轉換成大寫。使用標準i/o和文字模式。

4.編寫乙個程式,按順序在螢幕上顯示命令列中所列出的檔案。使用argc控制迴圈。

5.修改程式清單13.5中的程式,用命令列介面代替互動式介面。

6,使用命令列引數的程式依賴於使用者的記憶體如何正確地使用它們。重寫清單程式13.2中的程式,不使用命令列引數,而是提示使用者輸入所需資訊。

7.編寫乙個程式開啟兩個檔案。可以使用命令列引數或提示使用者輸入檔名。

a. 該程式以這樣地順序列印:列印第1個檔案的第1行,第2個檔案的第2行,第1個檔案的第2行,第2個檔案的第2行,以此類推,列印到行數較多檔案的最後一行。

b.修改該程式,把行號相同的行列印成一行

8.編寫乙個程式,以乙個字元和任意檔名作為命令列引數。如果字元後面沒有引數,該程式讀取標準輸入;否則,程式一次開啟每個檔案並報告每個檔案中該字元出現的次數。檔名和字元本身也要一同報告。程式包含錯誤檢查,已確定引數數量是否正確和是否能開啟檔案。如果無法開啟檔案,程式應報告這一情況,然後繼續處理下乙個檔案。

9.修改程式清單13.3中程式,從1開始,根據加入列表的順序為每個單詞編號。當程式下次執行時,確保新的單詞編號接著上次的編號開始。

10.編寫乙個程式開啟乙個文字檔案,通過互動方式獲得檔名。通過乙個迴圈,提示使用者輸入乙個檔案位置。然後該程式列印從該位置開始到下乙個換行符之前的內容。使用者輸入負數或非數值字元可以結束迴圈。

11.編寫乙個程式,接受兩個命令列引數。第乙個引數是乙個字串,第二個引數是乙個檔名。然後該程式查詢該檔案,列印檔案中包含該字串的所有行。因為該任務時面向行而不是面向字元的,所有要使用fgets()而不是grtc(). 使用標準c庫函式strstr() (11.5.7節簡要介紹過)在每一行中查詢指定字串符。假設檔案中的所有行都不超過255個字元。

12,建立乙個文字,內含20行,每行30個整數。這些整數在0~9中間,用空格分開。該檔案是用數字表示一張,0 ~9表示逐漸增加的灰度。編寫乙個程式,把檔案中的內容讀入乙個20 x 30的int陣列中,用值0對應空格字元,1對應點子符,以此類推。字元越大表示字元所佔空間越大。例如,用#表示9.每行的最後乙個字元(第31個)是空字元,這樣該陣列包含了20個字串。最後,程式顯示最終的(即,列印所有的字串),並將結果儲存在文字檔案中。例如,下面是開始的資料:

第13章 檔案輸入 輸出

函式 fopen getc putc exit fclose fprintf fscanf fgets fputs rewind fseek ftell fflush fgetpos fsetpos feof ferror ungetc setvbuf fread fwrite 如何使用c標準i o...

第9章 檔案和輸入輸出 2

9.3 檔案內建方法 9.3.1 輸入 read 方法用來直接讀取位元組到字串中,最多讀取給定數目個位元組。readlines 方法讀取開啟檔案的一行。然後整行,包括行結束符,作為字串返回。9.3.2 輸出 write 方法把含有文字資料或二進位制資料塊的字串寫入到檔案中去。wirlelines 方...

第9章 檔案和輸入輸出 3

9.4 檔案內建屬性 file.closed 表示檔案已經被關閉,否則為false。file1 open c documents and settings 10170660 desktop 1.txt mode u file1.closed false file.encoding檔案所使用的編碼。p...