我试图检查输入有效性。给我一个文件,其中有两列,第一个是字符串,第二个是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