我試圖檢查輸入有效性。給我一個文件,其中有兩列,第一個是字符串,第二個是ints。分隔符是任意數量的空格。問題是,我無法弄清楚如何正確檢查第二個項目是否是int。通過調用lineStream.good()
我可以檢測輸入如「ABCD G」,但是當我在放像「ABCD 12A」,它被解析爲「ABCD」和12同樣的,「如何從字符串中讀取和驗證istringstream
string line; // parameter with a string to be parsed
string name;
int num;
istringstream lineStream(line);
lineStream >> name;
lineStream >> num;
:考慮下面的代碼abcd 12.2「等
在Java中,我可以使用String.split()
來數組,然後解析每個整個元素,而不是忽略任何字符,但我不知道什麼是正確的方法。
感謝提示
可以影響C++假設你的分裂相同的「分裂」的策略是基於空格轉換爲字符串,然後再驗證個別實體,但最終的問題是一個亮點。看來你問的是如何驗證被提取的*元素,事實上,它是完整和簡潔的,也許如何通過流屬性收集這些信息。好問題。我會對不同的方法感興趣。 – WhozCraig 2013-03-11 17:42:09
我想知道是否有一種方法可以簡單地做到這一點,即使用流。人們可能會爲創建一個char *數組而煩惱,然後對它們進行標記並檢查有效性,這是真的。 – 2013-03-11 17:46:31