Radius Berechnen, nur Fehlermldungen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Radius Berechnen, nur Fehlermldungen

    Tagchen,

    Hier ersteinmal folgenden Code:

    Quellcode

    1. #include <iostream.h>
    2. void main()
    3. {
    4. float radius;
    5. cout<<"Bitte geben Sie den Radius ein: ";
    6. cin>>radius;
    7. cout<<"Der Umfang betraegt: "<<2*3.14*radius<<endl;
    8. };



    So wenn ich die jetzt starten will öffnet sich das Fenster ganz kurz und schlies sofort wieder!

    Als Fehlermeldung spukt der mir aus:

    - fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?

    Wenn ich die Einfüge kommt folgendes:
    - error C2065: 'cout': nichtdeklarierter Bezeichner
    - error C2065: 'cin': nichtdeklarierter Bezeichner
    - error C2065: 'endl': nichtdeklarierter Bezeichner


    So was muss ich jetzt tun, damit das klapt?

    Gruß,
    Tim
  • Ich gehe davon aus du hast einen MS-Compiler.

    Wenn dieser etwas neuer ist und du halbwegs aktuellen Code schreiben willst,
    dann nimm, wenn dein Compiler das unterstützt, die Headerfiles ohne das .h.
    Dann musst du den Code aber noch ein wenig anpassen.

    Weiter ist es heute üblich statt

    Quellcode

    1. void main()


    Quellcode

    1. int main()


    zu wählen.

    Wozu ist das letzte Semicolon?

    Kannst du den Radius noch eingeben?

    Zum sofortigen Beenden deines Programmes, wenn es richtig ist gibt es im
    Netz tausende von Beiträgen.

    MfG Bcc-fan
  • Ersteinmal sind ein paar Fehler in deinem Programm enthalten die gewisse VisualC Versionen ignorieren / stilistischer Natur sind.

    In C++ heißt es

    Quellcode

    1. #include <iostream>

    statt

    Quellcode

    1. #include <iostream.h>


    und main hat _immer_ den Rückgabewert int. (Man kann jedoch das renturn 0; am Ende weglassen)

    Dass sich das Fenster sofort wieder schließt ist ersteinmal normales Verhalten. Eine Konsolenanwendung beendet sich wenn sie fertig ist, und das ist sie ja nach der Ausgabe.

    Der korekteste Weg IMHO das zu lsen ist einfach die cmd zu starten, in das Verzeichniss zu cd -en und so die exe AUS DER KONSOLE ausführen.

    Es gibt auch möglichkeiten das Programm am Schluss auf Eingaben warten zu lassen, sodass man die RETURN-Taste drücken muss, könnte ich nachsehen weiß ich nicht auswendig.

    Zu der letzten Fehlermeldung: In der stdafx.h steht ein

    Quellcode

    1. #include <iostream>

    Die StandardC++-Header (die ohne .h) deklarieren alle funktionen im Namensbereich (= namespace) std. Daher musst du korrekt die main()-Funktion so schreiben:

    Quellcode

    1. int main()
    2. {
    3. float radius;
    4. std::cout<<"Bitte geben Sie den Radius ein: ";
    5. std::cin>>radius;
    6. std::cout<<"Der Umfang betraegt: "<<2*3.14*radius<<std::endl;
    7. };


    Die stdafx.h benötigt VisualC nur in bestimmten Projekttypen (frag mich nicht welche! ich arbeite hauptsächlich mit g++; ich habe mehrere Anwendungen ohne eine stdafx.h mit der VC8 kompiliert, auf der Comandline und in der IDE) und hat mit C++ an sich nichts zu tun.

    EDIT:// war jemand schneller
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)
  • Hi,

    danke erst einmal!

    So nun habe ich folgendes Problem:
    Das Fenster ist nun geöfnet und ich kann einen Radius eingeben, allerdings schliest sich das Fenster nachdem ich auf Enter gedrückt habe!

    Wie kann ich das Fenster denn warten lassen, evtl. liegt es daran.

    Gruß,
    Tim

    PS:

    Quellcode

    1. #include <iostream>
    2. int main()
    3. {
    4. float radius;
    5. std::cout<<"Bitte geben Sie den Radius ein: ";
    6. std::cin>>radius;
    7. std::cout<<"Der Umfang betraegt: "<<2*3.14*radius<<std::endl;
    8. };
  • "darthdespotism" schrieb:

    Dass sich das Fenster sofort wieder schließt ist ersteinmal normales Verhalten. Eine Konsolenanwendung beendet sich wenn sie fertig ist, und das ist sie ja nach der Ausgabe.

    c-plusplus.de/forum/viewtopic-var-t-is-111042.html erklärt wie du diese eigentlich erwünschte Verhalten abändern kannst
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)
  • Hallo,

    ich habe den Code von deiner verlinkten Seite eingebaut, aber das Fenster schliest sich trotzdem!

    Quellcode

    1. #include <iostream>
    2. int main()
    3. {
    4. float radius;
    5. std::cout<<"Bitte geben Sie den Radius ein: ";
    6. std::cin>>radius;
    7. std::cout<<"Der Umfang betraegt: "<<2*3.14*radius<<std::endl;
    8. };
    9. #include <conio.h>
    10. #include <windows.h>
    11. void wait ()
    12. {
    13. FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    14. getch();
    15. }
    Alles anzeigen


    Hoffe ihr könnt mir als Neuling helfen.

    Tim
  • Quellcode

    1. #include <iostream>
    2. #include <conio.h>
    3. #include <windows.h>
    4. void wait();
    5. int main()
    6. {
    7. float radius;
    8. std::cout<<"Bitte geben Sie den Radius ein: ";
    9. std::cin>>radius;
    10. std::cout<<"Der Umfang betraegt: "<<2*3.14*radius<<std::endl;
    11. wait();
    12. };
    13. void wait ()
    14. {
    15. FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    16. getch();
    17. }
    Alles anzeigen


    EDIT://
    Wobei ich ehrlichgesagt die version mit dem cin persönlich besser finde, da conio nicht portabel ist
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)
  • "darthdespotism" schrieb:

    Wobei ich ehrlichgesagt die version mit dem cin persönlich besser finde, da conio nicht portabel ist


    Quellcode

    1. #include <iostream>
    2. #include <stdio.h>
    3. void wait();
    4. int main()
    5. {
    6. float radius;
    7. std::cout<<"Bitte geben Sie den Radius ein: ";
    8. std::cin>>radius;
    9. std::cout<<"Der Umfang betraegt: "<<2*3.14*radius<<std::endl;
    10. wait();
    11. };
    12. void wait ()
    13. {
    14. fflush(stdin);
    15. getchar();
    16. }
    Alles anzeigen


    So könnte man der conio.h aus dem Weg gehen.
  • "Hafner" schrieb:

    Man könnte das Programm auch einfach aus der Shell aufrufen, damit man das Ergebnis sehen kann.

    Reicht mir auch immer ;)
    Aber es gibt halt Leute die ihren Doppelklcik brauchen
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)