void getBaseCoord(string droneInfo, double& x, double& y, double& z){
// x= stod(droneInfo.substr(31, 3));
//y= stod(droneInfo.substr(34, 3));
// z= stod(droneInfo.substr(37, 3));
string strx, stry, strz;
strx = droneInfo.substr(31, 3);
stry = droneInfo.substr(34, 3);
strz = droneInfo.substr(37,3);
x = stof(strx);
y = stof(stry);
z = stof(strz);
以上是我正在爲新手C++課程開發的一個項目的摘錄。我從一個輸入文件中讀取此字符串:將子字符串從輸入文件轉換爲雙精度值?
9673767892DroaninAlong4880021DO4.37.33.88.19.33.8U
註釋掉的部分是到子從串線轉換成雙重價值,爲功能操作的目的的一種嘗試。然而,我無法以這種方式轉換這些,並且在編譯時出現錯誤,並且聲明stod
未聲明(我猜它認爲它是一個變量?)
什麼是將子字符串轉換爲雙精度值的正確方法在一個函數內?
您必須'#include'。如果你沒有通過'using namespace std;'來拉入標準庫,你必須在'std ::'前面加上前綴:'std :: stod(droneInfo.substr(31,3));' –
Casey