Re: [問題] 寫入至檔案串流

看板C_and_CPP (C/C++)作者 (藍影)時間14年前 (2011/08/19 22:08), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串4/4 (看更多)
: 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)

08/19 22:16, , 1F
個人認為那是新手版'\x0a'...
08/19 22:16, 1F

08/19 22:16, , 2F
還有其實 '0a' 不會 compile error
08/19 22:16, 2F

08/19 22:16, , 3F
不過會變成多少就不知道了
08/19 22:16, 3F

08/19 22:20, , 4F
我改半天還真改不過去說, char* <---> int, 不能轉吧.
08/19 22:20, 4F

08/19 22:21, , 5F
T 大好有心啊 !! (worship)
08/19 22:21, 5F

08/19 22:23, , 6F
char* <---> int 強轉不行?
08/19 22:23, 6F

08/19 22:24, , 7F
都忘了這點, 強轉真的可以, 謝謝 f 大。
08/19 22:24, 7F

08/20 00:26, , 8F
warning: multi-character character constant 學到了 ...
08/20 00:26, 8F
文章代碼(AID): #1EJcvCyK (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1EJcvCyK (C_and_CPP)