我有以下代码,但它只将字符串转换为double。如果字符串包含字母,则会导致错误
while (cin >> s){
const char *c_ptr=s.c_str();
d = atof(c_ptr);
v.push_back(d);
}
我想输入一个像“a1.2 3 4b”这样的字符串,并用“1.2 3 4”填充矢量
答案 0 :(得分:1)
这个怎么样:
1) replace all chars in the string that aren't digits or decimal points by spaces
2) read doubles in a loop
因为你在解析双打前删除了字母,所以它们不应再造成问题。