Re: [問題] 遇到換行結束輸入 in C

看板C_and_CPP作者 (殺.人.鬼)時間16年前 (2009/05/05 11:54), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
全部都用scanf系列也可以作到。 為了這個目的,需要使用一些不常出現的格式化字串。 %n 回傳目前為止分析過的字元數 %*c 讀入一個字元並略過 %[] 這個格式會讀入一個字串, 並且只允許 [ ] 之間的字元出現。 如果 [ ] 中的字串開頭是'^',就是禁止這些字元出現。 #include <stdio.h> int main() { char line[1024]; int var[1024]; while (scanf("%1023[^\n]%*c", line) == 1) { size_t size = strlen(line); size_t cursor; size_t count = 0; while (sscanf(&line[cursor], "%d%n", &var[count], &cursor) == 2) ++count; } size_t i; for (i = 0; i < count; ++i) printf("%d ", var[i]); putchar('\n'); } } -- ▊◢◥▃ ◥ ▎ ▇▅/ ◥◣▍◣ / \ ╴╴╴╴/ / \ / /\╴╴╴╴ / ╲ ◢ ◢ ╴/ ╲╴╴╴╴/ ╲ ◢▅ ◤▁ ◢█ φibmibmibm / ╲╴╴╴╴ ▂▅▇ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.237.164

05/05 21:48, , 1F
05/05 21:48, 1F
文章代碼(AID): #1A02ZkC7 (C_and_CPP)
文章代碼(AID): #1A02ZkC7 (C_and_CPP)