13.1 和檔案進行通訊
文字檢視和二進位制檢視 :在文字檢視中,程式看到的內容和二進位制的內容可能不同,例如ms-dos文字檔案用回車符和換行符的組合/r/n來表示行尾,macintosh用乙個回車符/r來表示行尾。c程式使用乙個/n表示行尾。所以,如果c程式以文字檢視模式處理乙個ms-dos文字檔案,在讀取檔案時它會將/r/n轉換為/n,在寫入檔案時它會將/n轉換成為/r/n.
unix僅採用一種檔案結構,這兩種檢視在unix實現中是相同的。
c程式自動為您開啟3個檔案,標準輸入,標準輸出和標準錯誤輸出。預設的標準輸入通常為鍵盤,預設的標準輸出和標準錯誤輸出通常為顯示器。
例 13.1:
要知道某些作業系統不能識別argv[0],所以這一用法並非完全可移植。
exit() 函式關閉所有開啟的檔案並終止程式。引數會被傳遞給一些作業系統。通常的約定是正常終止的程式傳遞值0,非正常終止的程式傳遞非0值。ansi c規定的使用值0或巨集exit_success來指示程式成功終止,使用巨集exit_failure指示程式非成功終止,在stdlib.h檔案中。為了獲得最大的可移植性,應該使用巨集exit_success和exit_failure.
在最初呼叫的main()中使用return 0和exit(0)的效果相同,但是如果main()在乙個遞迴程式中,exit()仍然會終止程式,單return將控制權交給遞迴的前一級,直到最初的哪一級,此時return才會終止程式。return和exit()的另乙個區別在於,即使在main()以外的函式中呼叫exit(),它也將終止程式。
fopen() 函式,開啟檔案,在stdio.h中宣告。它的第乙個引數是要開啟的檔名,更確切地說,是包含該檔名的字串的位址 ,第二個引數是用於指定檔案開啟模式的乙個字串,可以是「r」 「w」 「a」 「r+」 "w+" "a+"等,還有「rb」 「wb」。。等和前面的模式相似,只是使用二進位制模式而非文字模式。對於unix和linux,帶b字母的模式和對應的不帶b字母的模式是相同的。注意,使用"w"模式開啟乙個已有的檔案,檔案內容將被刪除,以便程式以乙個空檔案開始操作。
函式成功地開啟乙個檔案後,返回乙個檔案指標,若開啟失敗,返回空指標null.l
注意,使用
「 w
」 模式開啟乙個已有的檔案,檔案內容將被刪除,以便程式以
乙個空檔案開始操作。
l函式成功地開啟乙個檔案後,返回乙個檔案指標,若開啟失敗,返回空指標
null.
l getc()和putc()函式的作用和用法。
lgetc()
函式獲取字元,
putc()
輸出乙個字元,需要告訴它們要使用的檔案。
lgetc()
有乙個引數,需要是檔案指標型別,表示從這個指標指定的檔案中獲
得乙個字元。
lputs()
有兩個引數,第乙個是字元,然後是檔案指標。
lputc(ch, stdout)
和putchar(ch)
的作用是一樣的。
檔案結尾 :eof
讀取檔案內容的兩種範例:
1:
2: 精簡形式:
fclose()函式
fclose(fp)函式關閉由指標fp指定的檔案,同時根據需要重新整理緩衝區。更正規的程式也許還要檢查是否成功關閉了檔案,如果成功關閉,fclose()函式將返回值0,否則返回eof。
三種標準檔案:
標準輸入 stdin
標準輸出 stdout
標準錯誤 stderr
---------------------------------csdn的**真爛那。。。。**框顯示不正常也就罷了,連刪都刪不去那。
檔案輸入輸出
檔案的兩種檢視 文字和二進位制。有的時候同乙個檔案以不同的檢視進行檢視,顯示是不同的,主要是控制字元 回車,換行 的不同。printf 是將各種型別轉換為適合的終端字元。所以打算將乙個結構體送入檔案的話不能用printf這一類函式。二進位制形式儲存,中間沒有從數字到字串形式的轉化。對於標準io,fr...
檔案輸入輸出
當我們求解acm題目時,通常在設計好演算法和程式後,要在除錯環境 例如vc等 中執行程式,輸入測試資料,當能得到正確執行結果後,才將程式提交到oj中。但由於除錯往往不能一次成功,每次執行時,都要重新輸入一遍測試資料,對於有大量輸入資料的題目,輸入資料需要花費大量時間。使用freopen函式可以解決測...
C 檔案輸入輸出
檔案輸入輸出 1 directory info 和file info 型別 directory和file通過靜態成員實現操作,擴充套件了system.object。返回強型別物件。directoryinfo和fileinfo通過例項級方法實現 必須使用new關鍵字分配它們 從filesystemin...