我需要從用戶那里獲取單行輸入,并從該輸入中提取 5 個值(“c”需要為 5)。輸入是這樣的格式:“ word(number) number word sentence ”。但問題在于“ word(number) ”輸入區域。我無法得到它,以便從輸入的那部分讀取值并存盤在命令和 num1 中。以下是我嘗試過的代碼,但它似乎不起作用。
c = sscanf (line, "%s(%d) %d %s 8[^\n]", command, num1, num2, message, message2);
當我讓用戶輸入“單詞(數字)數字單詞句子”時,括號前有一個空格,同時將代碼從 更改%s(%d)為%s (%d),這似乎有效。但我需要它,值command和num1.
uj5u.com熱心網友回復:
您需要從第一個字串中排除括號。假設“命令”是嚴格的字母數字和下劃線,您可以這樣做:
c = sscanf(line, "%[_a-zA-Z0-9](%d) %d %s 8[^\n]", command, &num1, &num2, message, message2);
此外,您需要在 and 上num1加上與號num2;也許那些是錯別字?
command為了安全起見,您應該對和設定長度限制,message就像對message2. 假設'char command[21],message[33];`,這將是:
" [_a-zA-Z0-9](%d) %d 2s 8[^\n]"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441815.html
下一篇:檢查串列中是否沒有要洗掉的內容
