看板 C_and_CPP 關於我們 聯絡資訊
: FILE *fp1; : while((fgets(str,100,stdin))!='0a'){ 這個 '0a' 是搞笑的嗎?還是我有所誤解? compile error ~ : fputs(str,fp1); : } : 可是就如前面所說的會卡在如何在我按下ENTER或鍵盤輸入什麼才能停止寫入並跳出? 我直說你要的是什麼好了。 以文本模式開啟之檔案而言,最常用的三個讀檔指令是 fscanf、fgets、fgetc,仔細翻你的書,或上網查他們 傳回值 說明 大致如下 fscanf: 傳回成功匹配引數之數量,若讀到檔案結束時,則傳回 EOF。 fgets : 傳回字串指標,失敗時傳回 NULL,當檔案結束 (EOF) 時會喚起 NULL fgetc : 傳回讀到字元,檔案結束時傳回 EOF。 好了,接下來的都一樣。 while((fgets(str,100,stdin))!= NULL){ puts(str); } 若為檔案,以 EOF 為結束,重點是 EOF 怎麼送對吧? 目前,在 Windows 作業系統裡,當你按下 Ctrl + Z,再按 Enter, 就是送出 EOF;在 Linux 作業系統裡,按下 Ctrl + D,也是 EOF。 至於之前推文的 Ctrl + C ,說的是 Break,像是 while(1) puts("hello, world!!"); 這種 dead loop, 事實上按 Ctrl + C 就強迫終止了。 以上,請參閱。 -- If there is no tomorrow, I want to see you last time.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.78.41 ※ 編輯: tropical72 來自: 180.177.78.41 (08/19 22:15)
LPH66:個人認為那是新手版'\x0a'... 08/19 22:16
LPH66:還有其實 '0a' 不會 compile error 08/19 22:16
LPH66:不過會變成多少就不知道了 08/19 22:16
tropical72:我改半天還真改不過去說, char* <---> int, 不能轉吧. 08/19 22:20
firejox:T 大好有心啊 !! (worship) 08/19 22:21
firejox:char* <---> int 強轉不行? 08/19 22:23
tropical72:都忘了這點, 強轉真的可以, 謝謝 f 大。 08/19 22:24
meconin:warning: multi-character character constant 學到了 ... 08/20 00:26