Print Funktion
-
Also, ich möchte aus lauter For-Schleifen eine cout-Befehl auslagern in eine Funktion, damit ich nicht ständig alle 4 ändern muß. Ich hab sowas noch nicht gemacht. Würde das gehn?
int Print(int, int); //Deklaration der Funktion for ()// Schleife { Ich weiß nicht, wie ich die Funktion "Print" hier aufrufe, damit er an dieser Stelle druckt! } int Print() //Definition einer Funktion { cout<<"TN = "<<gtz<<" TT "<<gtz%7<<" WN "<<1+gtz/7<<" Tag " <<tz<<" Monat "<<mo<< " \n"; }
-
Was sagt denn dein Compiler dazu? Schon kompiliert? Wenn´s nicht geht, was sagt er dann?
-
Ich will das jetzt nicht in mein Programm einsetzen, weil es grade so schön läuft. Lieber so im Kleinen verstehen, und dann einarbeiten.
Vielleicht kannst Du ja so einen Tipp geben. Ich hab noch nie ein Funktion gebastel, theoretisch ist mir das schon klar, nur eben ......
-
So hab ichs gemacht: Aber es passiert nichts.
#include "Futester.h" #include <iostream> using namespace std; int a; int Print(); //Deklaration einer Funktion int main() { for (int a=1; a<10; a=a+1) { Print; } } int Print() //Definition einer Funktion { cout<<"Zahl "<<a<<".\n"; }
-
Was sagt der Komplier?
wahrscheinlich eine Warnung für die Zeile, ein Funktionsname ohne die Klammern ist eine Adresse auf eine Funktion, wenn du eine Funktion aufrufen willst schreibe Print()
int main() { for (int a=1; a<10; a=a+1) { Print(); } }
ahja deine Schleife wird nur 9 mal durchlaufen
int main() { for (int a=0; a<10; a++) { Print(); } }
mfg Gerard
-
Bekell schrieb:
So hab ichs gemacht: Aber es passiert nichts.
1. Globale Variablen sind in der Regel ein Zeichen für schlechte Programmierung (Es mag Ausnahmen geben, aber hier wären Parameter sinnvoller).
2. Wenn du bei Print als Rückgabetyp int angibst, musst du auch etwas zurückgeben (Die main-Funktion stellt hier eine Ausnahme dar, da an dieser Stelle automatisch "return 0" durchgeführt wird, wenn nichts anderes angegeben wird).
3. Für "a=a+1" kann man auch "a+=1" oder "++a" schreiben.
// Beispiel ohne globale Variablen: #include <iostream> void Print(int); int main() { for(int a=1; a<10; ++a) Print(a); } void Print(int zahl) { std::cout << "Zahl " << zahl << ".\n"; }
-
Er sagt: ISO C++ forbids Deklaration with no type. Was bedeutet das? Er zielt auf die 1. Zeile der Definition.
Hab ich das bei return richtig gemacht, mit dem a in Klammern?
#include "Futester.h" #include <iostream> using namespace std; int a; int Print(int a); //Deklaration einer Funktion int main() { for (a=1; a<10; a=a+1) //Schleife { Print (a); } } Print(int a) //Definition einer Funktion { cout<<"Zahl "<<a<<".\n"; return (a);
-
1. Du hast vergessen den Rückgabetyp bei der Definition der Funktion
Print
anzugeben.
2. Du musst dasa
nicht in Klammern setzen.
3. Wie wäre es mit einem C++ Einsteiger Buch?Grüssli
-
4. Gewöhn dir einen sinnvollen Einrückstil ein.
5. Schau dir bitte auch mal an, was andere als Beispiel posten, und vergleiche mal - vielleicht sieht man dann auch den ein oder anderen Fehler.
6. Ich wiederhole es auch nochmal: Wie wäre es mit einem C++ Einsteiger Buch? - Aber bitte einem Guten (z.B. C++ Primer).