作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 寫入至檔案串流
時間Fri Aug 19 22:08:10 2011
: 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