pi mal Daumen berechnen
-
Hallo liebe Forengemeinde,
Ich hab ein kleines
Programm geschrieben,
dass Pi*Daumen berechnet,
es funktioniert aber
nicht so wie ich will.#define M_PI 3,14 void main() { fprintf(stdout, "Geben Sie ihre Daumenlänge ein!"); char* eingabe; eingabe = new char[20]; gets(eingabe); int daumenlaenge = atoi(eingabe); cout << "Pi mal Daumen ist bei ihnen " << eingabe * M_PI << endl; }Mein Programm stürzt mit der Fehlermeldung "kann cout nicht finden" oder so ähnlich ab.
Grüße,
Anton
-
Achja, ich bin neu bei
C++ und ich lerne das
für die Schule, also
habt bitte etwas Nachsicht.
-
Hallo Anton!
Hast du irgendwelche header eingebunden?
cout braucht <iostream>.
Wenn ja, dann hast du wahrscheinlich keinen namespace hinzugefügt!entweder:
using namespace std;oder
std::cout<<PS: warum arbeitest du mit fprintf, char* und eingabe()?
nimm doch std::cout, std::string und std::cin!
[EDIT]: noch was, definiere PI nicht über #define, sondern so:const double Pi=3.14159.....mfg
syntax
-
#include <iostream> #define M_PI 3,14 using namespace std; void main() { fprintf(stdout, "Geben Sie ihre Daumenlänge ein!"); char* eingabe; eingabe = new char[20]; gets(eingabe); int daumenlaenge = atoi(eingabe); cout << "Pi mal Daumen ist bei ihnen " << (*eingabe * M_PI) << endl; }-- den Rest ergänzt der Beitrag über mir, der von dir gezeigte Code ist so zumindest lauffähig.
-
Yada schrieb:
-- den Rest ergänzt der Beitrag über mir, der von dir gezeigte Code ist so zumindest lauffähig.
Nein, in vielfacher Hinsicht nicht:
http://ideone.com/wVtbn#include <iostream> #define PI 3.14 // Punkt statt Komma. M_PI Bezeichner ist reserviert und WIRD auch tatsächlich so benutzt // Wird daher höchstwahrscheinlich kollidieren. using namespace std; int main() // int statt void { cout << "Geben Sie ihre Daumenlänge ein!\n"; // fprintf ist nicht in iostream und cout zu nutzen ist sowieso konsistenter // char* eingabe; // einfach nur schrecklichm die vier Zeilen // eingabe = new char[20]; // gets(eingabe); // int daumenlaenge = atoi(eingabe); // Besser: double daumenlaenge; cin >> daumenlaenge; cout << "Pi mal Daumen ist bei ihnen " << daumenlaenge * PI << endl; // Keine Klammern nötig, * bindet stärker als << }
-
#define M_PI 3,14Code ist so zumindest lauffähiggenau...
wenn ich PI brauche, mach ich das eigtl immer so:
#include <cmath> #ifndef M_PI # define M_PI 3.14159 #endif /*...*/alternativ über eine konstante, hab ich mir aber bisher immer verkniffen, weil angst vor fremden defines ohne ifndef...
bb