我正在尝试检查输入有效性。我得到一个文件,其中有两列,第一列是字符串,第二列是整数。分隔符是任意数量的空格。问题是,我无法弄清楚如何正确检查第二项是否真的是 int。考虑这段代码:
string line; // parameter with a string to be parsed
string name;
int num;
istringstream lineStream(line);
lineStream >> name;
lineStream >> num;
通过调用,lineStream.good()
我可以检测到诸如“abcd g”之类的输入,但是当我放入诸如“abcd 12a”之类的内容时,它会被解析为“abcd”和12。与“abcd 12.2”等相同。
在 Java 中,我可以使用String.split()
一个数组,然后解析每个整个元素,而不是忽略任何字符,但我不知道这里的正确方法是什么。
感谢提示