[問題] 開啟a檔案內容的檔名b

看板C_and_CPP (C/C++)作者 (阿德)時間16年前 (2010/04/28 20:50), 編輯推噓3(308)
留言11則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) fp4是我讀取內容都是檔名的txt文件 想說讀到第一比檔名的時候 把它存到fp 好讓fp可以開啟名稱為第一行檔名的文件 先用印到螢幕來測試 不過有一行好像有未知錯誤 可以請問一下錯誤原因嗎 還有我該如何修正呢 謝謝 希望得到的正確結果: 開啟檔案內容的檔案 程式跑出來的錯誤結果: ! Swift/XRT lightcurve of tr請按任意鍵繼續 . . . 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) char a[30]; char b[30]; char *ptr=a; FILE *fp4; FILE *fp; while(fgets(a,30,fp4)!=NULL) { int len=strlen(ptr); if(ptr[len-1]=='\n') ptr[len-1]='\0'; fp=fopen(a,"r"); fgets(b,30,fp);<=======這行好像會引起未知錯誤 printf("%s",b); } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.145.161 ※ 編輯: qaz5620 來自: 118.161.145.161 (04/28 20:59)

04/28 21:28, , 1F
養成好習慣檢查開檔有沒有成功, 即fp值是否fopen後為
04/28 21:28, 1F

04/28 21:29, , 2F
NULL; 推測你的問題在上一行 fp=fopen( a ,"r"); 吧??
04/28 21:29, 2F

04/28 22:08, , 3F
不好意思 我修改成fp=fopen(a,"r");還是沒辦法 ORZ..
04/28 22:08, 3F
※ 編輯: qaz5620 來自: 118.161.145.161 (04/28 22:08)

04/28 22:18, , 4F
沒辦法什麼東西?? 開檔失敗?? 開檔前把 a print出來看看
04/28 22:18, 4F

04/28 22:18, , 5F
到底是什麼, 然後確認該檔案是不是真的存在....
04/28 22:18, 5F

04/28 22:20, , 6F
嗯嗯 檔案確定存在
04/28 22:20, 6F
※ 編輯: qaz5620 來自: 118.161.145.161 (04/28 22:21)

04/28 22:21, , 7F
印出b那行 會引起錯誤
04/28 22:21, 7F

04/29 16:42, , 8F
建議在fopen前把檔名印出來檢查 注意是不是有EOF或空白行
04/29 16:42, 8F

04/29 16:43, , 9F
或者行尾有多空白字元之類的問題
04/29 16:43, 9F

04/29 16:50, , 10F
還有 fp宣告成NULL 然後照V大說的檢查 fopen後是否仍為NULL
04/29 16:50, 10F

04/29 16:51, , 11F
還有因為你fp重複使用 所以要記得開新檔前要先fclose
04/29 16:51, 11F
文章代碼(AID): #1Bs2yQHm (C_and_CPP)
文章代碼(AID): #1Bs2yQHm (C_and_CPP)