2014-11-21 40 views
-4

我正在嘗試製作一個面積計算器,但我認爲我弄亂了一些東西來定義長度和寬度。 我得到一個錯誤,說錯誤:未初始化的const'長度'[-fpermissive] | (與寬度相同的東西) 我是新來的編程我很難理解我在製作這個計算器時做了什麼錯誤

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
const char length; 
const char width; 
cout << "Please enter the your length: "; 
cin >> length; 
cout << "Please enter your width: "; 
cin >> width; 
string area = 
    length * width; 
cout << " The area of these values is :" << area << "\n"; 
} 
+0

有多個錯誤,但這個錯誤是明確告訴你不是也沒有給它的值在同一行(在這種情況下,你可能想聲明的東西'const'從聲明中刪除'const')。 – 2014-11-21 20:22:57

+0

@NickRomano這是因爲你試圖隱式地將一個數字轉換爲一個'std :: string'。這是行不通的。只是使它'int area = length * width;'(編輯:哦,他的評論下回答曾經在這裏) – PeterT 2014-11-21 20:33:33

回答

0

cin >> length;

你肯定喜歡const char length;
const變量聲明實際上表明,你不能改變這些變量值和試圖這樣做是未定義的行爲。

還要注意length應該size_t型的,不只是unsigned char,這是唯一能撐起一個大小255最大的。

+0

我最初把它作爲整數,並沒有奏效。它說代碼的問題在於:長度*寬度 – 2014-11-21 20:32:07

0

您的變量聲明的長度和寬度不應該是const。您得到的錯誤是因爲const值在聲明時需要初始化(賦予它們一個值)。他們不能有分配給他們的值,這就是cin >>所做的。

+0

哦好吧,對不起,我沒在想。我原來是int而不是const,但我明白我搞砸了。謝謝! – 2014-11-21 20:37:11

+0

'const'是一個限定詞,用於表示變量不能更改。 'const double pi = 3.14;'會是什麼時候合適的例子。然後,編譯器會用代碼的實際值替換代碼中出現的每個「pi」。 – Sanders 2014-11-22 06:31:53

0

代碼有很多錯誤。

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    const char length; // Making these const will break as soon as you try to write to it 
    const char width;  // 
    cout << "Please enter the your length: "; 
    cin >> length; // The fact you made it a char means it will only read the first char. "10" it would read "1" 
    cout << "Please enter your width: "; 
    cin >> width; 
    string area = // this will not work. There is no assignment operator for char to string 
     length * width; 
    cout << " The area of these values is :" << area << "\n"; 
} 

固定

#include <iostream> 
using namespace std; 

int main() 
{ 
    float length; 
    float width; 
    cout << "Please enter the your length: "; 
    cin >> length; 
    cout << "Please enter your width: "; 
    cin >> width; 
    float area = length * width; 
    cout << " The area of these values is :" << area << "\n"; 
} 
相關問題