首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C語言文件打開失敗後繼續執行導致崩潰:缺少錯誤返回處理

     編輯:程式設計疑難解答

錯誤代碼

if((fp=fopen("test.txt","r"))==NULL) {
    printf("失敗\n");
}  // 缺少 return 或 exit,程序繼續向下執行
while(!feof(fp)) {  // fp為NULL,feof觸發未定義行為
    fscanf(fp,"%d",&n[i++]);
}

修正方案

if((fp=fopen("test.txt","r"))==NULL) {
    printf("失敗\n");
    return 1;  // 或 exit(1); 立即終止主函數
}
// 後續正常讀取邏輯...

進階建議

  • 使用絕對路徑或相對可執行文件目錄路徑,避免工作目錄不一致導致找不到文件。
  • 檢查文件讀取權限,Windows下注意文件被佔用(如記事本打開中)。
  • 生產代碼中應記錄詳細錯誤碼(errno/strerror)便於診斷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved