看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
firejox:你有那個檔案嗎? 07/28 12:47
james732:怎麼樣的問題? 07/28 12:47
firejox:沒有fclose... 07/28 12:47
loveme00835:(c=getc(ofp)) 拿出去分另外一行, 不要擠在一起壞習慣 07/28 12:47
kusokiller:我的chapter1檔案放在同個資料夾 是個txt檔 07/28 12:48
loveme00835:fopen先確認回傳值是不是NULL, 還有檔名是否給錯 07/28 12:48
ericinttu:1. 先確定檔案能不能開來讀. 07/28 12:49
loveme00835:檔名要連extension都給 07/28 12:49
firejox:fopen("chapter1.txt","r"); ... 07/28 12:49
kusokiller:(c=getc(ofp))是我從課本上抄來的 我不知道分出去的話 07/28 12:49
kusokiller:把txt加上去就成功了 感謝各位幫忙 07/28 12:50
kusokiller:想請問(c=getc(ofp))是課本上的 不建議這樣使用嗎? 07/28 12:51
kusokiller:還有fclose課本上也說不用.... 所以? 07/28 12:52
firejox:把那本燒了 教壞別人... 07/28 12:54
firejox:說什麼fclose不需要的... 07/28 12:59
ericinttu:沒有fclose, 開第一次可以, 開第二次就會有問題. 07/28 12:59
chchwy:老實說Unix Network Programming就這樣寫.... 07/28 13:00
chchwy:我說 while( (c=getc())!=EOF ) {} 07/28 13:01
james732:我覺得比較大的問題是 fopen 沒檢查回傳值 & 沒有 fclose 07/28 13:08
james732:while( (c=getc())!=EOF ) 看起來倒沒那麼糟? 07/28 13:08