Visual C++ 2010 Einstieg C++ 

Status
Für weitere Antworten geschlossen.

fexs

Registered +
Registriert
Mai 2009
Beiträge
316
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:
Code:
#include 
using namespace std;

void main()
{
cout }

Eigentlich richtig oder?
Aber immer kommt die Fehlermeldung "Fehler beim Erstellen". Das steht bei Ausgabe:
Code:
------ Erstellen gestartet: Projekt: Hallo Welt, Konfiguration: Debug Win32 ------
stdafx.cpp
Hallo Welt.cpp
c:\blabla\projects\hallo welt\hallo welt\hallo welt.cpp(4): warning C4627: "#include ": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
"StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
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?
========== 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
 
Zuletzt bearbeitet von einem Moderator:
Wie meinst du das? Ich drücke eben auf Debuggen.:P
Aber langsam nervt es wirklich.. falls das hilft:
bei der Rechnung:
Code:
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;)
 
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:
Code:
unsigned short laenge = 4; 
unsigned short breite = 3;
unsigned short flaeche = laenge * breite;
 
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:

Code:
cout cin>>laenge;
cout cin>>breite;
cout system("pause");

Ist aber fast aus dem Lehrbuch abgeschrieben^^
 
Du darfst flaeche erst berechnen wenn die variablen gesetzt sind.
Code:
coutcin>>laenge;
coutcin>>breite;
flaeche = laenge * breite;
coutsystem("pause");

Wenn du das nicht machst beinhaltet flaeche wie gesagt einen undefinierten wert.
 
OK dann liegt es wohl echt daran dass ich was falsch mache. Aber was ist mit diesem Code? Es kommt immer kompletter Schrott heraus.

Code:
#include "stdafx.h"
#include 

using namespace std;

int main ()
{
cout cout cout cout int zahl1, zahl2, zahl3, zahl4, zahl5, summe;
cin>>zahl1;
cout cin>>zahl2;
cout cin>>zahl3;
cout cin>>zahl4;
cout cin>>zahl5;
summe=zahl1+zahl2+zahl3+zahl4+zahl5;
cout5
system("Pause"); 
return 0;
}
 
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...
 
Zuletzt bearbeitet von einem Moderator:
Bei mir kommt 49808 oder so raus-.- ich versucht mal mit neu installiern. Glaub aber kaum dass es was bringt. Aber danke!:)
fexs
 
Weil da auch nix richtiges rauskommen kann ;) Du berechnest doch afaik keinen Durchschnitt mit dem Code?
Hier mal mein Vorschlag:
Code:
include 
using namespace std;

int main
{
float z1, z2, z3, z4, z5, schnitt; // Variablen definieren, hier OHNE Wertzuweisung
cout/ Aufforderung an den User, die Zahlen einzugeben
cin>>z1; // weist der Variable z1 den eingegebenen Wert zu
cout cin>>z2;
cout cin>>z3;
cout cin>>z4;
cout cin>>z5;
schnitt=(z1+z2+z3+z4+z5)/5 /addiert die Variablen und berechnet den Durchschnitt -> Achte auf Punkt-vor-Strichrechnung
cout/Ausgabe des Schnitts
system("Pause");
return 0;
}
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 >.<
 
Zuletzt bearbeitet von einem Moderator:
Hehe naja ich hatte es sowieso schon raus xD kann dann hier ja eh geschlossen werden;)
aber danke!
 
Das ist mein kleiner Vorschlag mit Arrays. Außerdem habe ich System("Pause") vermieden, da das schlechter Stil ist:

Code:
#include 

void wait();

int main()
{
unsigned float values[5];
float sum = 0.f;

std::cout  for(int i = 1; i  {
std::cout  std::cin >> values[i-1];
}

std::cout  for(int i = 0; i < 5; i++)
{
std::cout  sum += values[i];
}
std::cout  
std::cout  5;

wait();
}

void wait()
{
std::cin.clear();
std::cin.sync();
std::cin.get();
}

EDIT: Sorry ... habe übersehen, dass der Thread so alt ist.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten