[問題] fopen

看板C_and_CPP作者 (士官長)時間13年前 (2011/07/28 12:44), 編輯推噓3(3017)
留言20則, 6人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 課本上的每個有fopen的題目我跑出來都有問題 所以現在自己從頭開始試fopen的功能還是不行 囧 想請版上的大大幫我看下 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdlib.h> #include<stdio.h> int main(){ char c; FILE *ofp; ofp=fopen("chapter1","r"); while((c=getc(ofp))!=EOF){printf("%c",c);} system("pause"); return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.191.166

07/28 12:47, , 1F
你有那個檔案嗎?
07/28 12:47, 1F

07/28 12:47, , 2F
怎麼樣的問題?
07/28 12:47, 2F

07/28 12:47, , 3F
沒有fclose...
07/28 12:47, 3F

07/28 12:47, , 4F
(c=getc(ofp)) 拿出去分另外一行, 不要擠在一起壞習慣
07/28 12:47, 4F

07/28 12:48, , 5F
我的chapter1檔案放在同個資料夾 是個txt檔
07/28 12:48, 5F

07/28 12:48, , 6F
fopen先確認回傳值是不是NULL, 還有檔名是否給錯
07/28 12:48, 6F

07/28 12:49, , 7F
1. 先確定檔案能不能開來讀.
07/28 12:49, 7F

07/28 12:49, , 8F
檔名要連extension都給
07/28 12:49, 8F

07/28 12:49, , 9F
fopen("chapter1.txt","r"); ...
07/28 12:49, 9F

07/28 12:49, , 10F
(c=getc(ofp))是我從課本上抄來的 我不知道分出去的話
07/28 12:49, 10F

07/28 12:50, , 11F
把txt加上去就成功了 感謝各位幫忙
07/28 12:50, 11F

07/28 12:51, , 12F
想請問(c=getc(ofp))是課本上的 不建議這樣使用嗎?
07/28 12:51, 12F

07/28 12:52, , 13F
還有fclose課本上也說不用.... 所以?
07/28 12:52, 13F

07/28 12:54, , 14F
把那本燒了 教壞別人...
07/28 12:54, 14F

07/28 12:59, , 15F
說什麼fclose不需要的...
07/28 12:59, 15F

07/28 12:59, , 16F
沒有fclose, 開第一次可以, 開第二次就會有問題.
07/28 12:59, 16F

07/28 13:00, , 17F
老實說Unix Network Programming就這樣寫....
07/28 13:00, 17F

07/28 13:01, , 18F
我說 while( (c=getc())!=EOF ) {}
07/28 13:01, 18F

07/28 13:08, , 19F
我覺得比較大的問題是 fopen 沒檢查回傳值 & 沒有 fclose
07/28 13:08, 19F

07/28 13:08, , 20F
while( (c=getc())!=EOF ) 看起來倒沒那麼糟?
07/28 13:08, 20F
文章代碼(AID): #1ECEaKoN (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
問題
3
30
完整討論串 (本文為第 1 之 2 篇):
問題
3
20
問題
3
30
文章代碼(AID): #1ECEaKoN (C_and_CPP)