[C語言] 讀入一行再剖析字串
在寫UVa或其他線上題目時,很容易遇到要從stdin剖析
10 20 3 5 6 -3 4 3 22 13 3 42 -1
這類的題目一次要處理以一行為單位,裡面有數字轉存int陣列又不同長度,每一行代表每一圈loop的執行,最後結尾來個-1代表測資輸入完畢的題目
如果直接用迴圈每個每個數字讀又有換行的問題要考慮
有做過這種題目的人應該對這種題目印象深刻吧
常常光在寫輸入的部分就花費了不少行數
以下是我在parse這類輸入的方法,分享給大家參考。
char inputLine[100]; int result[20]; int resultLength = 0; if(fgets(inputLine, sizeof(inputLine), stdin) != NULL) { char *lineTheRest = inputLine; int offset; while(sscanf(lineTheRest, " %d%n", &result[resultLength], &offset) == 1) { resultLength++; lineTheRest +=offset; } }
近期迴響