文字列をdoubleに変換しようとしています。コードは非常に単純です。
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 )(i + 1)))、これは非クラスタイプのcharです
それが何を意味するのかわかりません。extra [i + 1]をcoutすると、3になります。extraを文字列として残すと、プログラムは最初に(2)を51(ascii for 3)で除算しようとします。一体何が起こっているのですか?