[問題] 請問一下有關輸入判斷問題

看板C_and_CPP作者 (小豆豆)時間14年前 (2010/08/02 10:17), 編輯推噓2(2022)
留言24則, 5人參與, 最新討論串1/1
他的輸入如下 2 1 2 10 I 3 1 11 C 1 2 19 R 1 2 21 C 1 1 25 C 1 2 10 I 3 1 11 C 1 2 19 R 1 2 21 C 1 1 25 C 6 1 50 I 7 1 60 E 那個2是代表有兩個case 我的問題在說我不知道第一筆資料要輸入幾筆資料 題目說第一個case 跟第二個case以一行空白隔開 但是這樣要怎麼區分是第一個case還第二個case? 他沒給一個case要輸入幾筆的的話 連續輸入後要怎麼區分第一個case到哪邊? 這是題目網址 可能我有哪邊漏看了沒看見 幫我看看 http://www.tcgs.tc.edu.tw/~sagit/luckycat/q10258.htm -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.216.83

08/02 11:08, , 1F
一次讀一整行,如果index 0是'\n',代表一個case。
08/02 11:08, 1F

08/02 11:10, , 2F
不好意思我是新手 可以再講清楚一點嗎?看不太懂~ . ~
08/02 11:10, 2F

08/02 11:13, , 3F
char data[100];
08/02 11:13, 3F

08/02 11:13, , 4F
while(fgets(data, sizeof(data), stdin) != NULL)
08/02 11:13, 4F

08/02 11:14, , 5F
{
08/02 11:14, 5F

08/02 11:14, , 6F
if(datarow[0] == '\n')
08/02 11:14, 6F

08/02 11:14, , 7F
// do someting
08/02 11:14, 7F

08/02 11:14, , 8F
else
08/02 11:14, 8F

08/02 11:15, , 9F
// do someting
08/02 11:15, 9F

08/02 11:15, , 10F
}
08/02 11:15, 10F

08/02 11:15, , 11F
抱歉,那個datarow是data,打錯了。
08/02 11:15, 11F

08/02 11:46, , 12F
但是我輸入資料是用 int 那這樣有其他方法嗎?
08/02 11:46, 12F

08/02 12:05, , 13F
基本上大概沒辦法, 但是你可以繞個路, 讀完一行以後, 再
08/02 12:05, 13F

08/02 12:06, , 14F
從讀入的這行文字裡讀取int, 或許你會需要sscanf().
08/02 12:06, 14F

08/02 15:09, , 15F
sscanf()就是從字串裡讀東西, 用法和sprintf一樣
08/02 15:09, 15F

08/02 15:37, , 16F
我是用C++ 寫的 有對應的函數嗎
08/02 15:37, 16F

08/02 15:40, , 17F
如果你的code仍然使用了 char array 當作string來用,
08/02 15:40, 17F

08/02 15:40, , 18F
那基本上上面的function和你寫C還是C++沒有關係都能使用
08/02 15:40, 18F

08/02 15:41, , 19F
如果你用了 string, 那就去查string有什麼method吧@_@"
08/02 15:41, 19F

08/02 15:44, , 20F
如果是我的話會直接 #include <cstdio> 很多時候, stdio還
08/02 15:44, 20F

08/02 15:44, , 21F
是很好用的
08/02 15:44, 21F

08/02 15:45, , 22F
還是用 stringstream 啊?? 不好意思C++不熟....XD
08/02 15:45, 22F

08/02 16:11, , 23F
我用fget試試看~ 謝謝各位嚕
08/02 16:11, 23F

08/02 17:01, , 24F
我會用cin.get()自己拆 字元轉數字用char-'0' 方便XD
08/02 17:01, 24F
文章代碼(AID): #1CLYgaxq (C_and_CPP)