6
想象一下以下內容:不要在scanf關心
您在scanf()
串讀,但你只需要幾個數據點的的字符串中。
是否有一種簡單的方法可以丟棄無關信息,而不會丟失檢查相應數據是否存在的能力,因此您仍然可以輕鬆地拒絕格式錯誤的字符串?
例如:
const char* store = "Get: 15 beer 30 coke\n";
const char* dealer= "Get: 8 heroine 5 coke\n";
const char* scream= "Get: f* beer 10 coke\n";
我要接受的第一個字符串,但忘了啤酒,因爲啤酒是yuckie。 我想拒絕第二和第三個字符串,因爲它們顯然不是7/11的適當列表;
所以我想下面的結構:
char* bId = new char[16];
char* cId = new char[16];
int cokes;
sscanf([string here], "Get: %d %s %d %s\n", [don't care], bId, &cokes, cId);
這樣我會保持格式檢查,但什麼會我把爲[不在乎]不會使編譯器哀鳴?
當然,我可以做一個我以後不用的變量,但這不是這個問題的要點。此外單獨檢查左側和右側是一個明顯的解決方案,我不在這裏尋找。
那麼,有沒有辦法不關心,但仍然檢查scanf和朋友中的一段字符串的類型?
我知道這將是要麼明顯的或不可能的。 – NomeN 2009-09-11 10:25:55