標準流和錯誤處理

2022-03-22 06:06:02 字數 1978 閱讀 9058

}/*執行結果:

標準輸出

開啟檔案失敗!

請按任意鍵繼續. . .

*/重定向:這裡給大家補充乙個課外知識點,由於標準輸出和標準錯誤輸出通帝都是直接列印到辱幕上,為了區分它們,我們可以使用linux shel1的重定向功能:

上述程式結果:

錯誤處理

錯誤指示器—ferror。

test2.c:

#include #include int main(void)

while(1)

putchar(ch);// 將讀取到的字元列印出來

} fputc("abc", fp);//因為通過唯讀開啟的,不能寫入

if(ferror(fp))

fclose(fp);

return 0;

}

結果:

使用clearerr函式可以人為地清除檔案末尾指示器和錯誤指示器的狀態。

#include #include int main(void)

while(1)

putchar(ch);// 將讀取到的字元列印出來

} fputc("abc", fp);//因為通過唯讀開啟的,不能寫入

if(ferror(fp))

clearerr(fp);

if(feof(fp) || ferror(fp))

fclose(fp);

return 0;

}

結果:

ferror雖數只能檢測是否出錯,但無法獲取錯誤原因。不過,大多數條統函式在出現錯誤的時候會將錯誤原因記錄在errno中。需要

errno.h標頭檔案。

test3.c:

#include #include #include int main(void)

fclose(fp);

return 0;

}/*執行結果:

開啟檔案失敗!原因是:

請按任意鍵繼續. . .

*/

perror函式可以直觀地列印出錯誤原因。不

需要 errno.h 標頭檔案。

#include #include int main(void)

fclose(fp);

return 0;

}/*執行結果:

開啟檔案失敗!原因是:: no such file or directory

請按任意鍵繼續. . .

*/

strerror函式直接返回錯誤碼對應的錯誤資訊。需要 errno.h 標頭檔案。

#include #include #include int main(void)

fclose(fp);

return 0;

}/*執行結果:

出錯!原因是: no such file or directory ,唉!!!!

請按任意鍵繼續. . .

*/

標準流和錯誤處理

當乙個程式被執行的時候,c 語言自動為其開啟 3 個面向終端的檔案流 我們將它們稱為標準流。c 語言分別為三個標準流提供了對應的檔案指標 include include int main fclose fp return 0 每乙個流物件都有兩個指示器 檔案檢測函式 錯誤指示器 ferror。inc...

測試錯誤處理分類標準

一 錯誤 a 需求分析 業務規則 b 系統設計 c 系統實現 處理 編碼 二 錯誤型別 a 介面錯誤 b 功能錯誤 c 兼而有之 三 錯誤級別 a 嚴重錯誤,包括以下各種錯誤 1.由於程式所引起的宕機,非法退出2.死迴圈3.資料庫發生死鎖4.資料庫設計未達到第三正規化的要求或需求規格說明的格式水平5...

除錯和錯誤處理

1.除錯模式下執行 f5 非除錯模式下執行 ctrl f5 2.計算機的debug目錄下,有.pdb檔案,它們可以執行很多操作 向ide輸出除錯資訊 在執行應用程式期間檢視和編輯變數的值 暫停程式和重啟程式 在 的某個位置自動暫停程式的執行 一次執行程式中的一行 在應用程式的執行期間監視變數內容的變...