error: too few arguments to function 'const int& iRechner(const int&, const int&, int&)'
-
#include <iostream> using namespace std; const int& iRechner(const int&, const int&, int&); int main() { int iJahr{ 0 }, iMon{ 0 }, iTag{ 0 }; cout << "Geben Sie das Jahr ein: "; cin >> iJahr; if(cin.fail()) { cerr << "Falsche Eingabe!"; return 1; } cout << "Geben Sie den Monat ein: "; cin >> iMon; if(cin.fail()) { cerr << "Falsche Eingabe!"; return 1; } if(iMon>12) iMon = 12; cout << iRechner(iTag) << " Tage!" << endl; // diese Stelle wird beim Fehler markiert return 0; } // main const int& iRechner(const int& rJahr, const int& rMon, int& rTag) { if(rMon == 2) { if((rJahr%400 == 0) || (rJahr%4 == 0 && (rJahr%100 !=0))) { return rTag = 29; } else { return rTag = 28; } } else if(rMon <= 7) { if(rMon%2!=0) { return rTag = 31; } else { return rTag = 30; } } else { if(rMon%2 == 0) { return rTag = 31; } else { return rTag = 30; } } return rTag; } // iRechner
Hallo,
ich lerne gerade C++ mit dem Grundkurs Buch von Jürgen Wolf. Bzgl der Funktionen dachte ich eigentlich alles verstanden zu haben jedoch kam im Eigentest beim Compilieren folgender Fehler:error: too few arguments to function 'const int& iRechner(const int&, const int&, int&)'
witzigerweise wird der Code trotzem ausgeführt und funktioniert Fehlerfrei. Ich hab trotzdem lange gesucht und mit dem Buch verglichen. Nichts desto trotz komm ich nicht drauf was er von mir möchte. Meiner Meinung hat er alle Argumente die er braucht.
Vielleicht könnt ihr mir ja kurz Zeigen was ich missverstanden habe? Danke
-
witzigerweise wird der Code trotzem ausgeführt und funktioniert Fehlerfrei
Nein!
Meiner Meinung hat er alle Argumente die er braucht.
iRechner(iTag)
hat wieviele Parameter?von Jürgen Wolf
Schrott, in der Altpapiertonne entsorgen.
-
Boah! Das ist furchtbar! Du armer Mensch hast leider vom Meister des Pfusches selbst gelernt und das sieht man auf dem ersten Blick:
https://www.c-plusplus.net/forum/topic/272350/warnung-bücher-von-jürgen-wolf-zu-c-und-c-zum-lernen-ungeeignet-weilDa ist leider absolut alles in jeder Hinsicht falsch und nicht zu retten. Buch wegwerfen, mit dem Hammer auf den Kopf schlagen bis man es vergessen hat, dann noch einmal neu anfangen. Etwas anderes hilft da nicht.
Tatsächlich, je länger ich den Code ansehe, desto eher gehe ich davon aus, dass du dir vielleicht einen Scherz mit uns erlauben möchtest?
-
Nein das ist kein Scherz
Ok, ich merk schon, anderes Buch kaufen ^^ Wenn wir schon dabei sind. Was könnt ihr denn empfehlen?cout << iRechner(iJahr, iMon, iTag) << " Tage!" << endl;
ok, ich hab das probehalber abgeändert und er compiliert jetzt Fehlerfrei. Ich versteh jetzt nur nicht warum ich alle 3 Bezeichner angeben muss wo ich doch nur iTag brauche?!
-
- Weil Du Deine Funktion mit 3 Parametern deklariert hast (Zeile 5)
- Wieso brauchst Du nur einen?
Deine Funktion benutzt rMon (Zeile 35), rJahr (Zeile 36) und rTag (Zeile 37) - das sind doch alles Parameter, die Deine Funktion erwartet ...
-
lag an einem Denkfehler.
Ich hatte:
iRechner(iTag)
wie eine Variable behandelt die ich einfügen möchte, was natürlich blödsinn ist. Hab mich heute vormittag nochmals tiefer damit beschäftigt und den Grund verstanden.
cout << iRechner(iJahr, iMon, iTag) << " Tage!" << endl;
hier sage ich ihm ja nur er soll zur Funktion "iRechner(iJahr, iMon, iTag)" springen und die Werte iJahr, iMon und iTag übergeben. Nach dem ausführen kommt ja erste iTag zurück.
Hatte einfach vergessen, dass der Compiler nicht nach dem Bezeichner, sondern nach der Signatur (Bezeicher + Parameter) identifiziert.Trotzdem danke! Ihr habt mir quasi die Nase auf das Problem gedrückt und den Rest ausarbeiten lassen. Hab dadurch wieder was gelernt
was haltet ihr von dem?
-
@Lewauz sagte in error: too few arguments to function 'const int& iRechner(const int&, const int&, int&)':
was haltet ihr von dem?
Das gilt als eines der besseren deutschsprachigen Bücher. Wenn du international suchst, findest du auch noch bessere:
https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list/388282#388282
Ein paar davon, vor allem im Anfängerbereich, haben auch deutsche Übersetzungen.
-
@Lewauz Wenn es da jemanden im Deinem Leben gibt den Du echt nicht magst: Buch verschenken