看板 Programming 關於我們 聯絡資訊
大家好 小弟是C語言的新手. 昨天試了一晚還是想不出方法,想拜託大家= = 一般輸入資料型態都是既定(應該吧) 如scanf必須指定%? gets是直接拿字串等等 有的題目的輸入值為: 235 3546 346346 34577 3567 46 . 每行有兩數字中間有空白隔開,若是遇到'.'則結束。 小弟本以為可以直接用scanf,遇到'.'直接可以轉成符號編碼(int)。 但是測試後似乎不行直接轉型態(數字太大可能會改用long) 第二個想法是舊資料的方式,用陣列以gets將整行輸入後判斷是否為'.'再轉成數字 轉成數字的方式我是用2個迴圈 第一次讀到' '停(空白這樣寫不知有沒有錯) 第二次讀到'\0'停 結果是:只讀一個數字的版本有成功,可是讀兩個compiler正確 可是讀失敗     冏~          以上是小弟的問題  不知道大家有沒有比較好或是直接的方法     感激不盡T^T 感謝大大回答 不過有的指令我不知道用法,正在估狗中 附一下我的寫法,complier沒錯 只是結果是錯的 void main() { char str[20]; while((str[i]=getche())!='.') { if(((str[i])==' ')||((str[i])=='\n')) printf("進入空白或ENTER"); else{ printf("進入ELSE"); } ++; } printf("因為按了.跳出"); } 似乎無法成功讀取enter= = 是這邊寫法有錯,可是不知道要改成什麼~冏 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.0.87
KanoLoa:讀失敗的意思是? 114.42.18.127 09/12 09:46
tingyushyu:fgets()完strtok()或sscanf()122.117.237.194 09/12 10:02
bob123:scanf + strchr 140.120.61.206 09/12 10:17
homestay:讀失敗是printf印不出東西= =" 220.133.0.87 09/12 12:19
kuninaka:失敗會return -1 218.164.144.26 09/12 15:43
kuninaka:成功return 輸出的characters數 218.164.144.26 09/12 15:44
※ 編輯: homestay 來自: 220.133.0.87 (09/12 17:02) ※ 編輯: homestay 來自: 220.133.0.87 (09/12 17:09)