[問題] scanf() 輸入多行遇到特定字串結束

看板C_and_CPP作者 (aggie)時間11年前 (2013/06/07 23:31), 編輯推噓2(2014)
留言16則, 10人參與, 最新討論串1/1
開發平台(Platform): Visual studio c 問題(Question): 我想寫一個PO文的程式 現在大部分都好了 可是問題是 我用scanf讓使用者輸入文章內容 這樣只能輸入一行 我想要讓它可以按enter換行 然後譬如說輸入end才結束輸入文章 跳到是否要發布的選項 可是我現在用do-while以及while迴圈都沒辦法正確的執行 只能按enter一直換行 輸入end卻不會理我 就變成他完全卡在迴圈裏面無限輪回了 程式碼 do { scanf(" %s",&cont_str); cont_str是文章內容 }while(cont_str == end); 我是新手然後我第一次PO文 所以如果有不合規定或不清楚的地方請見諒>< 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.191.43

06/07 23:34, , 1F
比較字串要用 strcmp()
06/07 23:34, 1F

06/07 23:46, , 2F
我用了還是無限輪迴出不來耶><
06/07 23:46, 2F

06/08 00:01, , 3F
while(cont_str == end);
06/08 00:01, 3F

06/08 00:14, , 4F
改成 "end" 試看看
06/08 00:14, 4F

06/08 01:14, , 5F
也都不行>< 我現在是用while裡面放(strcmp()) 這樣可以 但
06/08 01:14, 5F

06/08 01:14, , 6F
這樣只會存end 前面打的都沒有存進去 我在試試 謝謝^^
06/08 01:14, 6F

06/08 01:27, , 7F
是!=end吧!?這樣寫輸入end他就會一直執行do裡的指令阿
06/08 01:27, 7F

06/08 02:31, , 8F
你把舊的字串覆蓋掉了 當然就會剩下end阿
06/08 02:31, 8F

06/08 07:33, , 9F
還滿好笑的 你有沒有聽過陣列
06/08 07:33, 9F

06/08 18:08, , 10F
scanf(" %s",&cont_str); ??
06/08 18:08, 10F

06/08 22:31, , 11F

06/08 22:33, , 12F
現在是打成這樣!!
06/08 22:33, 12F

06/09 00:28, , 13F
文字顏色改一下
06/09 00:28, 13F

06/10 11:42, , 14F
看到code還疑惑一下是不是自己記錯 scanf要字串的話
06/10 11:42, 14F

06/10 11:43, , 15F
cont_str不需要加& 是吧?
06/10 11:43, 15F

06/12 16:25, , 16F
不用& 但。。XD
06/12 16:25, 16F
文章代碼(AID): #1HiVoyng (C_and_CPP)