Visual C++ 2010 Einstieg

  • C++

  • fexs
  • 3023 Aufrufe 11 Antworten

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

  • Visual C++ 2010 Einstieg

    Hallo,
    ich wollte mal anfangen mit "Visual C++ 2010 Express" zu programmieren. Leider komm ich nicht sehr weit. Es kommt immer wieder ein Fehler. Der Code an sich ist richtig glaub ich, denn sogar ein "Hallo Welt"-Programm geht nicht.

    Das hier ist der Code:

    Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. void main()
    4. {
    5. cout << "hallo welt" << endl;
    6. }


    Eigentlich richtig oder?
    Aber immer kommt die Fehlermeldung "Fehler beim Erstellen". Das steht bei Ausgabe:

    Quellcode

    1. ------ Erstellen gestartet: Projekt: Hallo Welt, Konfiguration: Debug Win32 ------
    2. stdafx.cpp
    3. Hallo Welt.cpp
    4. c:\blabla\projects\hallo welt\hallo welt\hallo welt.cpp(4): warning C4627: "#include <iostream>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
    5. "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
    6. c:\blabla\projects\hallo welt\hallo welt\hallo welt.cpp(12): 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?
    7. ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


    Also muss ich wohl include "stdafx.h" schreiben. Was soll das denn? Selbst wenn ichs schreib kommt der Fehler noch. Muss ich da noch was einbinden damit iostream funktioniert? Oder was mach ich falsch?
    win32 Konsolenanwendung hab ich benutzt.

    #####################################################
    EDIT:
    Ok, habs jetz so einigermaßen zum Laufen gebracht, aber wenn ich jetz etwas berechne, z.B. Summe=anzahl/zahl dann kommt am Ende immer soetwas heraus wie: "Das Ergebnis ist: 5A3CED485"

    Was kann ich da machen??
    #####################################################

    Bin immer dankbar für Antworten!;)
    bis dann
    fexs
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von fexs ()

  • Wie meinst du das? Ich drücke eben auf Debuggen.:P
    Aber langsam nervt es wirklich.. falls das hilft:
    bei der Rechnung:

    Quellcode

    1. unsigned short int laenge, breite, flaeche=(laenge*breite);

    kommt wenn ich bei Länge 3 und Breite 4 schreibe als Ergebnis "49808" raus.

    Fehlen da vllt .dll´s oder so?
    danke für die Hilfe schonmal;)
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder
  • Ich meine die Zeile in der du die textausgabe machst...
    alse "cout << ..."

    bei der Berechnung bekommst du bei flaeche einen undefinierten wert.
    Du definierst zwar variabeln, aber weist ihnen keinen Wert zu. Dadurch wird bei der berechnung mit den Zahlen gerechnet die zufällig an der Speicherstelle der Variabel liegen.

    so wird es wahrscheinlich klappen:

    Quellcode

    1. unsigned short laenge = 4;
    2. unsigned short breite = 3;
    3. unsigned short flaeche = laenge * breite;
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Ja das mit dem undefinierten Wert weiß ich. Wenn ich es anders mache hab ich aber das selbe Problem nur, dass bei 3 und 4 immer 12 das Ergebnis ist. Obwohl ich bei cin>> einen anderen Wert eingegeben habe.

    Der Programmcode sieht so aus, aber ich habs ja bei vielen Programmen in denen man irgendwie rechnet; nicht nur in diesem:

    Quellcode

    1. cout<<"Geben Sie die Laenge ein: ";
    2. cin>>laenge;
    3. cout<<"Geben Sie die Breite ein: ";
    4. cin>>breite;
    5. cout<<"Die Flaeche des Rechtecks betraegt "<<flaeche<<"."<<endl;
    6. system("pause");


    Ist aber fast aus dem Lehrbuch abgeschrieben^^
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder
  • Du darfst flaeche erst berechnen wenn die variablen gesetzt sind.

    Quellcode

    1. cout<<"Geben Sie die Laenge ein: ";
    2. cin>>laenge;
    3. cout<<"Geben Sie die Breite ein: ";
    4. cin>>breite;
    5. flaeche = laenge * breite;
    6. cout<<"Die Flaeche des Rechtecks betraegt "<<flaeche<<"."<<endl;
    7. system("pause");


    Wenn du das nicht machst beinhaltet flaeche wie gesagt einen undefinierten wert.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • OK dann liegt es wohl echt daran dass ich was falsch mache. Aber was ist mit diesem Code? Es kommt immer kompletter Schrott heraus.

    C-Quellcode

    1. #include "stdafx.h"
    2. #include <iostream>
    3. using namespace std;
    4. int main ()
    5. {
    6. cout<<"Dies ist ein Programm zur Berechnung des Mittelwertes von 5 Zahlen"<<endl;
    7. cout<<"------------------------------------------------------------------"<<endl;
    8. cout<<" "<<endl;
    9. cout<<"Geben Sie Zahl 1 ein: ";
    10. int zahl1, zahl2, zahl3, zahl4, zahl5, summe;
    11. cin>>zahl1;
    12. cout<<"Geben Sie Zahl 2 ein: ";
    13. cin>>zahl2;
    14. cout<<"Geben Sie Zahl 3 ein: ";
    15. cin>>zahl3;
    16. cout<<"Geben Sie Zahl 4 ein: ";
    17. cin>>zahl4;
    18. cout<<"Geben Sie Zahl 5 ein: ";
    19. cin>>zahl5;
    20. summe=zahl1+zahl2+zahl3+zahl4+zahl5;
    21. cout<<"Der Mittelwert der 5 Zahlen betraegt: "<<summe/5<<endl;
    22. system("Pause");
    23. return 0;
    24. }
    Alles anzeigen
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder
  • Der code ist prinzipiell ok (kompletter schrott sollte nicht rauskommen).

    Allerdings kann es sein das Kommawerte abgeschnitten werden, weil du mit ganzzahlen rechnest. wenn du statt mit "int" mit "float" rechnest bekommst du die richtigen werte (auch komma genau).

    Aber ansich ist dein programm so korrekt... Wenn du beispielsweise folgende Werte eingibst:
    9
    8
    6
    8
    9


    bekommst du als Ergibnis 8 raus, was so auch passt...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Zerd ()

  • Weil da auch nix richtiges rauskommen kann ;) Du berechnest doch afaik keinen Durchschnitt mit dem Code?
    Hier mal mein Vorschlag:

    Quellcode

    1. include <iostream>
    2. using namespace std;
    3. int main
    4. {
    5. float z1, z2, z3, z4, z5, schnitt; // Variablen definieren, hier OHNE Wertzuweisung
    6. cout<<"Geben Sie die erste Zahl ein\n"; // Aufforderung an den User, die Zahlen einzugeben
    7. cin>>z1; // weist der Variable z1 den eingegebenen Wert zu
    8. cout<<"Geben Sie die zweite Zahl ein\n";
    9. cin>>z2;
    10. cout<<"Geben Sie die dritte Zahl ein\n";
    11. cin>>z3;
    12. cout<<"Geben Sie die vierte Zahl ein\n";
    13. cin>>z4;
    14. cout<<"Geben Sie die fünfte Zahl ein\n";
    15. cin>>z5;
    16. schnitt=(z1+z2+z3+z4+z5)/5 /addiert die Variablen und berechnet den Durchschnitt -> Achte auf Punkt-vor-Strichrechnung
    17. cout<<"Der Durchschnitt der 5 Zahlen beträgt "<<schnitt<<"\n"; //Ausgabe des Schnitts
    18. system("Pause");
    19. return 0;
    20. }
    Alles anzeigen

    Die bessere Lösung wäre wohl, das ganze über eine Schleife und ein Array zu machen, aber dazu reichen meine bescheidenen Kenntnisse nicht aus ;)

    EDIT: Ich würde die Variablen IMMER am Anfang definieren. Mann kann ihnen auch schon einen Wert zuweisen, muss man aber nicht. Tut man es nicht, so wird der Compiler zwar meckern, aber kompilieren.

    EDIT2: Scheiße.. Leiche geschändet X(
    Unser gemeinsames Leben heißt Offenheit, Herzlichkeit, Freundschaft, Mut zum Widerstand und der Glaube, dass es immer besser wird.
    Wer so offen ist, muss Fragen stellen, kann lebensverachtende Verhältnisse nicht akzeptieren sondern muss sich wehren, muss kämpfen gegen die, die das Leben verachten und die, die davon profitieren!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rosenrot ()

  • Das ist mein kleiner Vorschlag mit Arrays. Außerdem habe ich System("Pause") vermieden, da das schlechter Stil ist:

    Quellcode

    1. #include <iostream>
    2. void wait();
    3. int main()
    4. {
    5. unsigned float values[5];
    6. float sum = 0.f;
    7. std::cout << "Wir berechnen den Mittelwert von 5 Zahlen: " << std::endl;
    8. for(int i = 1; i <= 5; i++)
    9. {
    10. std::cout << "Gib bitte die " << i << ". Zahl ein: ";
    11. std::cin >> values[i-1];
    12. }
    13. std::cout << "Der Mittelwert der Zahlen [ ';
    14. for(int i = 0; i < 5; i++)
    15. {
    16. std::cout << values[i] << " ";
    17. sum += values[i];
    18. }
    19. std::cout << "] lautet: " << std::endl;
    20. std::cout << sum / 5;
    21. wait();
    22. }
    23. void wait()
    24. {
    25. std::cin.clear();
    26. std::cin.sync();
    27. std::cin.get();
    28. }
    Alles anzeigen


    EDIT: Sorry ... habe übersehen, dass der Thread so alt ist.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Twaddler ()