我正在尝试将字符串转换为双精度。代码非常简单。
double first, second;
first=atof(str_quan.c_str());
second=atof(extra[i+1].c_str());
cout<<first<<" "<<second<<endl;
quantity=first/second;
当尝试进行额外转换时,编译器向我抛出了这个智慧宝石:
错误:在 extra.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator](((unsigned int) 中请求成员 c_str )(i + 1))),它是非类类型 char
我不知道那是什么意思。如果我 cout extra[i+1],我会得到 3。如果我将 extra 作为字符串保留,程序会尝试首先将 (2) div 除以 51(ascii 表示 3)。到底他妈发生了什么?