C++ für Dumies Prob

Diskutiere C++ für Dumies Prob im Developer Network Forum im Bereich Hardware & Software Forum; Hi, ich hab mir am Donnerstag das Buch C++ für Dumies gekauft und hab heut bissel mithilfe des Buchs herumexperimentiert. Nur irgendwie wenn ich...
  • C++ für Dumies Prob Beitrag #1
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
Hi,
ich hab mir am Donnerstag das Buch C++ für Dumies gekauft und hab heut bissel mithilfe des Buchs herumexperimentiert. Nur irgendwie wenn ich auf Komplimieren klicke Sagt das Ding immer Fehler, obwohl ich genau das gemacht hab was im Buch stand (Es war ein einfacher Code zur Temperaturberechnung von Celsius in Fahrenheit). Ich hab den Code zichmal durchgelesen und fand keinen Schreibfehler. Hoffe ihr könnt mir helfen.
 
  • C++ für Dumies Prob Beitrag #2
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Servus,

Wir könnten dir vielleicht helfen, wenn du uns
  • den Source-Code
  • den Fehler
posten würdest.

Gruß, Max.
 
  • C++ für Dumies Prob Beitrag #3
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
so hier der Code

Zitat aus C++ für Dumies

// Programm, um die Temperatur von Grad Celsius
// in Grad Fahrenheit umzurechen:
// Fahrenheit = Celsius * (212 - 32)/100 + 32
//
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{

// die Temperatur in Celsius eingeben
int celsius;
cout << "Geben Sie die Temperatur in Grad Celsius ein:";
cin >> celsius;

// den Umrechnungsfaktor für Celsius
// in Fahrenheit berechnen
int factor;
factor = 212 - 32;

// mit dem Umrechnungsfaktor Grad Celsius
// in Grad Fahrenheit umrechnen
int fahrenheit;
fahrenheit = factor * celsius/100 + 32;

// das Ergebnis (und einen Zeilenumbruch) ausgeben
cout << "entspricht Grad Fahrenheit:";
cout << fahrenheit << endl;

// warten, bis der Benutzer den Wert gelesen hat
// und das Programm beendet
system("PAUSE");
return 0;
}
 
  • C++ für Dumies Prob Beitrag #4
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
oder schreib mir mal einen einfachen Code der bei def-c++ oder allgemein bei c++ funktioniert. Glaube nämlich, dass das Programm liegt (hoff ich aber nicht hab eben nichts umgestellt).
 
  • C++ für Dumies Prob Beitrag #5
C

COGE

Bekanntes Mitglied
Dabei seit
13.01.1999
Beiträge
6.151
Reaktionspunkte
3
Ort
hinten wie von vorne
welcher fehler tritt auf?
 
  • C++ für Dumies Prob Beitrag #6
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Servus,

An dem Quelltext sollte nichts falsch sein (hab leider keine Zeit zum testen).
Ganz einfaches Programm wäre
Code:
#include <iostream>
using namespace std;

int main(void)
{
     cout << "Hallo Welt";
     cin.get();
}
Welchen Compiler nutzt du denn? Welche Fehlermeldung wird angezeigt?
Bring doch ein paar Infos... ;)

Gruß, Max.
 
  • C++ für Dumies Prob Beitrag #7
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
Fehler:
Compiler: Default compiler
Führt g++.exe... aus
Achja und dein code funkt auch net irgendwas mach ich doch falsch. Ich geb es in Dev C++ ein als Quelldatei und dann mach ich komplimieren und dann funkts nicht. Das muss doch ein Grundlegender Programmfehler sein.
 
  • C++ für Dumies Prob Beitrag #8
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
Fehler:
Compiler: Default compiler
Führt g++.exe... aus
Achja und dein code funkt auch net irgendwas mach ich doch falsch. Ich geb es in Dev C++ ein als Quelldatei und dann mach ich komplimieren und dann funkts nicht. Das muss doch ein Grundlegender Programmfehler sein.

da fehlt doch noch der Fehler?
und als Compiler benutzt du den Standardcompiler von der Bloodshed Entwicklungsumgebung?
 
  • C++ für Dumies Prob Beitrag #9
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Fehler:
Compiler: Default compiler
Führt g++.exe... aus
Achja und dein code funkt auch net irgendwas mach ich doch falsch. Ich geb es in Dev C++ ein als Quelldatei und dann mach ich komplimieren und dann funkts nicht. Das muss doch ein Grundlegender Programmfehler sein.
Denke ich nicht....
1>------ Neues Erstellen gestartet: Projekt: test, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "test" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>main.cpp
1>Manifest in Ressourcen wird kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Verknüpfen...
1>LINK : C:\Documents and Settings\Max\My Documents\Visual Studio 2008\Projects\C++\test\Debug\test.exe wurde nicht gefunden oder beim letzten inkrementellen Linkvorgang nicht erstellt; vollständiger Link wird durchgeführt.
1>Das Manifest wird eingebettet...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Das Buildprotokoll wurde unter "file://c:\Documents and Settings\Max\My Documents\Visual Studio 2008\Projects\C++\test\test\Debug\BuildLog.htm" gespeichert.
1>test - 0 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 1 erfolgreich, Fehler bei 0, 0 übersprungen ==========

da fehlt doch noch der Fehler?
und als Compiler benutzt du den Standardcompiler von der Bloodshed Entwicklungsumgebung?
Also vom Dev-C++ kann ich abraten. Veraltet immer mehr.
Ich arbeite mit dem Visual Studio. Ist viel besser. ;)
Als Expressversion kannst du es dir kostenlos von Microsoft herunterladen.

Gruß, Max.
 
  • C++ für Dumies Prob Beitrag #10
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
also ich hab ihn mal testweise installiert, bei mir taucht kein Fehler auf und das Programm läuft wunderbar!

Wenn du beim Dev-Cpp bleiben möchtest, benutze mal den Downloadlink: http://dev-c.softonic.de/download

Wenn man ihn von der Offiziellen Seite herunterläd (in der aktuellsten Beta) fehlen Dateien vom Gnu, der hier verlinkte läuft auch so

sonst stimm ich Max11.111 zu! Benutz lieber das Visual Studio. Da bekommt man idr auch hier besseren Support
 
  • C++ für Dumies Prob Beitrag #11
Cheddar

Cheddar

Bekanntes Mitglied
Dabei seit
05.04.2009
Beiträge
453
Reaktionspunkte
0
Ort
Cheddar (Somerset)
Ich habe das Programm mit g++ (g++ Celsius.c -o Celsius -Wall) und DevCpp kompiliert, bei beiden lief alles glatt.
Den einzigen Fehler habe ich beim Ausführen des mit g++ kompilierten Programmes bekommen habe, war
sh: PAUSE: Kommando nicht gefunden.
, das liegt aber daran, dass "Pause" kein Unix-Befehl ist.

Eine Alternative zu DevC++ und VisualStudio ist die Code::Blocks IDE für Windows und Linux.
 
  • C++ für Dumies Prob Beitrag #12
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Servus,
also ich hab ihn mal testweise installiert, bei mir taucht kein Fehler auf und das Programm läuft wunderbar!

Wenn du beim Dev-Cpp bleiben möchtest, benutze mal den Downloadlink: http://dev-c.softonic.de/download

Wenn man ihn von der Offiziellen Seite herunterläd (in der aktuellsten Beta) fehlen Dateien vom Gnu, der hier verlinkte läuft auch so

sonst stimm ich Max11.111 zu! Benutz lieber das Visual Studio. Da bekommt man idr auch hier besseren Support
Ich war auch eine zeit lang Fan von diesem Compiler, aber das Visual Studio ist eben ein echter Alleskönner... ;)
Support wär jetzt nicht ausschlaggebend für mich, Google ist oft besser...
Und übrigens darfst du die vielen 1er und den Punkt in meinem Namen gerne weglassen.;)

Ich habe das Programm mit g++ (g++ Celsius.c -o Celsius -Wall) und DevCpp kompiliert, bei beiden lief alles glatt.
Den einzigen Fehler habe ich beim Ausführen des mit g++ kompilierten Programmes bekommen habe, war , das liegt aber daran, dass "Pause" kein Unix-Befehl ist.

Eine Alternative zu DevC++ und VisualStudio ist die Code::Blocks IDE für Windows und Linux.
Das Programm ist auch fehlerfrei. ;)
Ja, "pause" ist ein Windows Befehl. Allerdings erzielt ein simples
Code:
cin.get();
die selbe Wirkung - und das Plattformübergreifend.

Und, @Airfighter76: Wir können dir nur helfen, wenn du eine detaillierte Fehlermeldung ablieferst, bzw. genau beschreibst wie du das kompilieren angegangen bist.

Gruß, Max.
 
  • C++ für Dumies Prob Beitrag #13
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
Das Programm ist auch fehlerfrei. ;)
Ja, "pause" ist ein Windows Befehl. Allerdings erzielt ein simples
Code:
cin.get();
die selbe Wirkung - und das Plattformübergreifend.

wobei ich mit cin.get(); und dem Dev-Cpp immer das Problem hatte, dass meine letzte Bestätigung mit Enter immer das Programm zum durchlaufen brachte ... irgendwie musste ich immer 2 davon ans Ende schreiben

und wenn ich den Nick ausschreiben möchte mach ich das ... das dauert sowieso nicht wesentlich länger
 
  • C++ für Dumies Prob Beitrag #14
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
wobei ich mit cin.get(); und dem Dev-Cpp immer das Problem hatte, dass meine letzte Bestätigung mit Enter immer das Programm zum durchlaufen brachte ... irgendwie musste ich immer 2 davon ans Ende schreiben

und wenn ich den Nick ausschreiben möchte mach ich das ... das dauert sowieso nicht wesentlich länger
Das ist leicht zu erklären: Der Eingabepuffer befindet sich nicht im Ursprungszustand, d.h. er ist nicht leer. Er greift den Inhalt aus Eingabe auf, und deshalb wird das Programm beendet, bevor du die Ausgabe sehen kannst.
Abhilfe schaft aber
Code:
cin.ignore(cin.rdbuf()->in_avail()); 
cin.get();
oder eben 2-mal cin.get().

Gruß.
 
  • C++ für Dumies Prob Beitrag #15
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Kleine Anmerkung zum Umrechnungsprogramm: Divisionen mit int's zu rechnen kommt mir kontraproduktiv vor. :)
 
  • C++ für Dumies Prob Beitrag #16
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Servus,

@cmddegi:
Das ist wahr. Ist mir auf die Schnelle gar nicht aufgefallen...
Wahrscheinlich ist dies nur ein Beispiel zum Datentyp int, denn es würde sich anbieten dieses Problem später zu thematisieren und es dann mit float's zu überarbeiten. ;)
P.S.: Gratulation - zum 4'000ten Post. :)

@Airfighter76:
Falls du noch nicht so weit bist, kein Problem. Das Programm wird auch so funktionieren. ;)
Kurz erklärt:
Das von cmddegi thematisierte Problem liegt im Datentyp "int", welcher ja nur ganze Zahlen (e.g.: ...;-3;-2;-1;0;1;2;3;...) aufnehmen kann.
Das Ergebnis wird nie eine akzeptable Genauigkeit haben, da die Nachkommastellen nicht gerundet sondern einfach abgeschnitten werden!
Dieses Problem tritt bereits bei der Eingabe der °Celsius auf. Damit das Programm auch mit rationalen Zahlen funktionier, müsstest du die Datentypen von "int" in "double"/"float" abändern.

Wenn du nun Beispielsweise °Celsius mit 5 definierst, ist das Ergebnis 41 °F richtig. Bei 12 °C hast du dann ein Problem. Die Eingabe von "12" in einen int ist problemlos machbar.
Allerdings ist das Ergebnis der Rechnung 12 °C *(212-32)/100+32 = 53,6 ° F
Wie oben beschrieben wird das Ergebnis nicht aufgerundet (Nachkommastelle: 6 --> aufrunden) sondern einfach abgeschnitten.
Somit ist das ganzzahlige Ergebnis nicht etwa 54 °F, sondern 53 °F.

Wenn du etwas lernen willst, lies dir dieses Programm durch. Hier wird float als Datentyp gewählt und das Ergebnis somit korrekt dargestellt.
Code:
#include <iostream>
using namespace std;

int main(void)
{
	//Eingabe
	float celsius;
	cout << "Geben Sie die Temperatur in Grad Celsius ein: ";
	cin >> celsius;

	//Umrechnung
	float fahrenheit;
	fahrenheit = celsius * 180 / 100 + 32;

	//Ausgabe
	cout << celsius << " Gard Celsius entspricht " << fahrenheit <<" Grad Fahrenheit.";

	cin.get();
	return 0;
}


Allerdings soll das für dich kein großes Problem darstellen. ;)

Gruß, Max.
 
  • C++ für Dumies Prob Beitrag #17
Cheddar

Cheddar

Bekanntes Mitglied
Dabei seit
05.04.2009
Beiträge
453
Reaktionspunkte
0
Ort
Cheddar (Somerset)
Vereinfachen könnte man das Programm durch Ersetzen der Umrechnung mit
Code:
//Umrechnung
	float fahrenheit;
	fahrenheit = celsius * [B]33.8[/B];

Gibt es eigentlich eine Möglichkeit, die restlichen Nachkommastellen bei einem float (z.B. 3.60000000) zu "löschen"?! Manchmal irritiert es mich nämlich ein bisschen, 1.00000... statt 1 rauszubekommen.
 
  • C++ für Dumies Prob Beitrag #18
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Die Umrechnungsformel laut Wikipedia lautet: Tfahrenheit=Tcelsius*1,8 + 32
Zur Formatierung von Zahlen usw. bietet die "klassische" C-Funktion printf vielfältige Möglichkeiten. Welche Möglichkeiten es da bei den Streams gibt, kann ich nicht sagen.
 
  • C++ für Dumies Prob Beitrag #19
willikufalt

willikufalt

Bekanntes Mitglied
Dabei seit
28.08.2001
Beiträge
1.481
Reaktionspunkte
0
Welche Möglichkeiten es da bei den Streams gibt, kann ich nicht sagen.

Da gibt es so Befehle wie setw(), setprecision(), etc.
 
  • C++ für Dumies Prob Beitrag #20
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
So ich hab das Programm von Bloodsheed (stand im Buch das ich das nehmen soll). Und ich hab den Befehl Pause durch Blocks IDE ersetzt Ergebniss beim Komplimieren: While on the world are you compile an empty project?;). Das ding ist doch nicht leer ich hab doch nur pause durch Blocks IDE geändert. Was ist da der Fehler?

p.s. ich lad mir grad visual studio runter es wär praktisch wenn ihr mir sagen könnt ob ich da auch an dem oberen code was ändern muss?
 
Thema:

C++ für Dumies Prob

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben