2016-09-15 5 views
0

Also ich bin neu in der Programmierung und das ist Teil einer Universität Engineering-Programm. Ich habe beschlossen, Spaß zu haben und etwas außerhalb des Unterrichts zu schreiben. Ich versuche, ein Programm in C++ zu schreiben, das dem Benutzer erlaubt, 3 Werte für Länge, Breite und Höhe eines rechteckigen Prismas einzugeben und das Programm wird die 3 Werte verwenden, um die Oberfläche und das Volumen des Prismas zu berechnen.Fehler: keine Übereinstimmung für 'operator *' (Operandentypen sind 'std:: string {aka std basic_string <char>}' und {aka std basic_string <char>} ')

Das ist was ich bisher habe. (Geschrieben in Vocareum)

//---------------------------------------------------------------------------------------// 
//Calculate rectangular prism//   
//---------------------------------------------------------------------------------------// 
#include <string> 
#include <iostream> 
using namespace std; 

int main() 
{ 
string length; // length of prism in cm 
string width; // width of prism in cm 
string height; // height of prism in cm 

cout << "Please enter the length, width, and height of the rectangular prism." << endl; 

cin >> length; //length of prism in cm 
cin >> width; //width of prism in cm 
cin >> height; //height of prism in cm 

double volume; //volume of prism in cm^3 
double sa; //surface area of prism in cm^2 

volume = length * width * height; 
sa = (length * width * 2) + (width * height * 2) + (height * length * 2); 

cout << "The volume of the rectangular prism is " << volume << " cm^3." << endl; 
cout << "The surface area of the rectangular prism is " << sa << " cm^2." << endl; 

return 0; 
} 

//Whenever I try to compile, I'll get 4 error messages that reads 
//"error: no match for 'operator*' (operand types are 'std: :string {aka std basic_string<char>}' and {aka std basic_string<char>}') 
//ps these 3 comments aren't in the code 

Wie kann ich es beheben?

+0

Ich würde auch schreiben neigen: 'cin >> Länge >> Breite >> Höhe;' und 'const doppeltes Volumen = Länge * width * height; '- bevorzugt, Variablen zu initialisieren, ihnen nicht zuzuordnen, und die Dinge lieber const zu deklarieren, wo es möglich ist. –

Antwort

5

Die Art Ihres length, width und height Variablen ist string, die als Zahl interpretiert werden darf. Wenn Sie wollen, dass es zu float oder double nur ihre Art kompilieren ändern (oder int)

Verwandte Themen