C++ Hillfe was mach ich falsch ?!

  • Ersteller Ersteller Neuling0014
  • Erstellt am Erstellt am
N

Neuling0014

Gast
Hi habe ein Problem mit folgendem Quellcode
Code:
#include <iostream>
#include <cmath>
using namespace std;

	// Hauptprogramm = Funktion "main"

int main(void)
{
	// Definition von Datenobjekten

	int i;   // Kennziffer

			 // Eingabe

	cout << "Dieses Program dinet zum rechen der 4 Greundrchenarten\n"
		"Geben Sie einfach die gewünschte Rechenoparation\n"
		"ueber das Numpad das entschprechende Zeichen ein\n"
		"zum beenden des Programmes drücken sie 0" << endl;
	cout << "1 = Addition\n 2 = Subtration\n 3 = Multiplikation\n 4 = Division\n 0 = Ende";

	cin >> i;

	//Berechnung 

	if (i == 1) //aufruf Addition
	{
		Addition();
	}
	else if (i ==2)
	{
		Subtration();
	}
	else if (i == 3) // aufruf Mutltiplikation
	{
		Multiplikation();
	}
	else if (i == 4) //aufruf Division
	{
		Division();
	}
	else if (i == 0)
	{
		cout << "ende des Programmes" << endl;
		return 0;
	}
	else
	{
		cout << "Keine sinnvolle Eingabe" << endl;
	}
}
		void Addition()
		{
			//Datenobjeckte
			double x, y, z;

			//Eingabe
			cout << "x=  \n"
				"y=  \n";
			cin >> x, y;
			//Berechnugn
			z = x + y;
			//Ausgabe
			cout << "Ergebnis = " << z << endl;

		}
		void Subtration()
		{
			//Datenobjeckte
			double x, y, z;

			//Eingabe
			cout << "x=  \n"
				"y=  \n";
			cin >> x, y;
			//Berechnugn
			z = x - y;
			//Ausgabe
			cout << "Ergebnis = " << z << endl;
		}
		void Multiplikation()
		{
			//Datenobjeckte
			double x, y, z;

			//Eingabe
			cout << "x=  \n"
				"y=  \n";
			cin >> x, y;
			//Berechnugn
			z = x - y;
			//Ausgabe
			cout << "Ergebnis = " << z << endl;
		}
		void Division()
		{
			//Datenobjeckte
			double x, y, z;
			//Eingabe
			cout << "x=  \n"
				"y=  \n";
			cin >> x, y;
			//Berechnugn
			if (y == 0)
			{
				cout << "das geht nicht ! ist klar oder ?!" << endl;
			}
			else if (y != 0)
			{
				z = x / y;
			}
			//Ausgabe
			cout << "Ergebnis = " << z << endl;
		}
es wir die Fehlermeldung
quelle.cpp(27): error C3861: "Addition": Bezeichner wurde nicht gefunden.
quelle.cpp(31): error C3861: "Subtration": Bezeichner wurde nicht gefunden.
quelle.cpp(35): error C3861: "Multiplikation": Bezeichner wurde nicht gefunden.
quelle.cpp(39): error C3861: "Division": Bezeichner wurde nicht gefunden.

ausgegeben was zur Hölle habe ich falsch gemacht ????
für hilfe bin icvh schon im foraus dankbar
mit freundlichen Grüßen
ein Neuling
 
Zuletzt bearbeitet:
Bitte editier deinen Beitrag nochmal und füge [CODE ] und [ /CODE] ein. Die space in den Klammern müssen natürlich weg ;-)


Das Problem steht in der Fehlermeldung: Dein Compiler liest die Datei von oben bis unten und kommt irgendwann an die Zeile in main() wo du das hier machst: Addition();
Aber bis dahin hat er noch nie gesehen, dass eine solche Funktion existiert.
Da gibts 2 Lösungen:
Entweder du schreibst die Funktionen wie
Code:
void Addition()
ÜBER die main(). Dann sind sie IN der main() bekannt.

Oder du machst forward deklaration (https://de.wikipedia.org/wiki/Funktionsprototyp) und schreibst oben drüber:
Code:
void Addition();
Damit verrätst du dem compiler, dass so eine Funktion irgendwo mal implementiert werden wird.
 
Zuletzt bearbeitet:
hoffe habe das richtig umgestezt ^^ okay werde es probriren
 
Zuletzt bearbeitet:
Eine Funktion muss deklariert sein bevor sie aufgerufen wird. D.h. die Deklaration von "Addition()" und den anderen muss vor main() passieren. Entweder deklarierst du die Funktionen in einer Headerdatei oder indem du sie vor main() stellst.
Code:
void Addition (void);

Oder du fügst die ganzen Funktionen vor main() ein, d.h. main() ist am Ende des Programms.
 
wo hätte nie gedacht das man so schnell hilfe bekommt vielen dank an euch .

Doch leider hat es troz euren rat nicht funktioniert gab ne neue Fehler meldung die ich noch weniger verstehe

MSVCRTD.lib(exe_winmain.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion ""int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)".

C:\Users\Friedrich\Desktop\Programme\Taschenrechner\Debug\Taschenrechner.exe : fatal error LNK1120: 1 nicht aufgelöste Externe
 
Alle C++ Programme für Windows nutzen WinMain (), nicht main()
Entweder erstelle ein DOS Programm oder ein Windows Programm und nutze die jeweils sinnvolle main Funktion.
 
nutzt du eine entwicklungsumgebung?
dann hast evtl den falschen Projekttyp erstellt.
 
Zuletzt bearbeitet:
HominiLupus schrieb:
Alle C++ Programme für Windows nutzen WinMain (), nicht main()
Entweder erstelle ein DOS Programm oder ein Windows Programm und nutze die jeweils sinnvolle main Funktion.
Das hat nichts mit DOS vs Windows zu tun, sondern mit Konsolen vs. GUI-Program.

@Neuling0014: Wenn du Visual Studio nutzt und gerade c++ lernst würde ich immer die "Leeres Projekt" Projektvorlage verwenden.
 
HominiLupus schrieb:
Alle C++ Programme für Windows nutzen WinMain (), nicht main()
Entweder erstelle ein DOS Programm oder ein Windows Programm und nutze die jeweils sinnvolle main Funktion.

Man kann unter Windows seit mindestens 15 Jahren keine DOS-Programme mehr ausführen. Wenn du noch eine IDE benutzt, die das anbietet, rate ich dringend zu einem Update.
 
Zurück
Oben