[問題] 輸入資料的型態判別 C
大家好 小弟是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
推
09/12 09:46, , 1F
09/12 09:46, 1F
推
09/12 10:02, , 2F
09/12 10:02, 2F
推
09/12 10:17, , 3F
09/12 10:17, 3F
→
09/12 12:19, , 4F
09/12 12:19, 4F
→
09/12 15:43, , 5F
09/12 15:43, 5F
→
09/12 15:44, , 6F
09/12 15:44, 6F
※ 編輯: homestay 來自: 220.133.0.87 (09/12 17:02)
※ 編輯: homestay 來自: 220.133.0.87 (09/12 17:09)
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
3
6