2016-11-25 57 views
-1

我是上週開始使用C++的初學者。我正在嘗試製作一個簡單的程序,將英寸數轉換成英寸符號:例如, 62變成5'2" 。然而,當我嘗試編譯我有一些錯誤在第8行,我不知道它是什麼。在此先感謝。使用std :: stringstream時出現意外的結果

#include <iostream> 
#include <sstream> 
using namespace std; 
string ConvertToFootInchMeasure (int totalInches){ 
    string feet = ""+totalInches/12; 
    string inches = "" + totalInches%12; 
    stringstream converted; 
    conveted<<feet; 
    converted<<"'"; 
    converted<<inches; 
    converted<<"\""; 
    return converted.str(); 
} 
+0

'string feet =「」+ totalInches/12;''和'string inches =「」+ totalInches%12;'不會做你認爲的事。 –

+0

它是做什麼的? – mtheorylord

回答

3

該代碼可以很容易地固定這樣:

string ConvertToFootInchMeasure (int totalInches){ 
    stringstream converted; 
    // Do inline calculations and use formatted text output for the results 
    converted << (totalInches/12) << "'" << (totalInches%12) << "\""; 
    return converted.str(); 
} 

爲了進一步說明:您嘗試以連接totalInches/12totalInches%12操作的數字結果爲std::string變量,但聲明的右側沒有做到這一點

注意:

std::string operator+(std::string, char c)沒有做數值運算到字符串和連接的轉換你嘗試過與使用方法:在你的情況

string feet = ""+totalInches/12; 

也似乎會更糟糕,因爲這個詞

""+totalInches/12 

const char*指針做指針運算,而string變量則從eg一個指針地址"" + (62/12)