Moin ich hab hier grad mal diesen Code geschrieben, wo ich mit Funktionen arbeite in C. Ich habe folgendes Problem ich muss hier, doch eigentlich noch int eingabeDatum(); einfügen. Meines Wissens nach muss dass in die Funktion eingabeDatum einfügen, aber wenn ich das in die Funktion schreibe wird der Code nicht ausgeführt bzw. gibt der Compilier mir fehler aus ! Hier mein Code: #include <stdio.h> void eingabeDatum(void) { int eingabeDatum(); printf("\nBitte geben Sie das Zulassungsdatum ein (in der Form tt.mm.jj:"); scanf("%d", &eingabeDatum); } int main () { eingabeDatum(); return 0; }
:
Bearbeitet durch User
Du meinst eher das:
1 | #include <stdio.h> |
2 | |
3 | void eingabeDatum(void) { |
4 | int eingabe; |
5 | |
6 | printf("\nBitte geben Sie das Zulassungsdatum ein (in der Form tt.mm.jj:"); |
7 | scanf("%d", &eingabe); |
8 | |
9 | printf("Eingegeben wurde: %d\n", eingabe); |
10 | }
|
11 | |
12 | |
13 | int main () { |
14 | eingabeDatum(); |
15 | return 0; |
16 | }
|
Aber so wird das nicht funktionieren...da er nur die erste Zahl einliest, alles nach dem ersten Punkt wird ignoriert. Da du ja auch in einen Integer Variable einliest. Sonst:
1 | #include <stdio.h> |
2 | |
3 | void eingabeDatum(void) { |
4 | char eingabe[9]; // 9 weil 8 Zeichen + abschliessende '\0' |
5 | |
6 | printf("\nBitte geben Sie das Zulassungsdatum ein (in der Form tt.mm.jj:"); |
7 | scanf("%s", eingabe); |
8 | |
9 | printf("%s\n", eingabe); |
10 | }
|
11 | |
12 | |
13 | int main () { |
14 | eingabeDatum(); |
15 | return 0; |
16 | }
|
Oder mit mehreren Variablen
1 | void eingabeDatum(void) { |
2 | int tag, monat, jahr; |
3 | |
4 | printf("\nBitte geben Sie das Zulassungsdatum ein (in der Form tt.mm.jj:"); |
5 | scanf("%d.%d.%d", &tag, &monat, &jahr); |
6 | |
7 | printf("%d.%d.%d", tag, monat, jahr); |
8 | }
|
:
Bearbeitet durch User
> Aber so wird das nicht funktionieren...da er nur die erste Zahl > einliest, alles nach dem ersten Punkt wird ignoriert. > ja hast recht, aber ich Brauche später sowieso nur die Jahreszahl, da ich das Alter berechnen möchte. Wie kann ich denn es so machen dass er nur die Jahreszahl betrachtet und Datum und MOnat nicht ? Mit mehreren VAriablen müsste ich dass codieren oder ?
:
Bearbeitet durch User
Wado U. schrieb: > Mit mehreren VAriablen müsste ich dass codieren oder ? hat sich wohl überschnitten...schau mal ganz unten in meinem Beitrag, hatte das nachträglich hinzugefügt.
Adam P. schrieb: > char eingabe[9]; // 9 weil 8 Zeichen + abschliessende '\0' > > printf("\nBitte geben Sie das Zulassungsdatum ein (in der Form > tt.mm.jj:"); > scanf("%s", eingabe); Aber wehe, jemand kommt auf die Idee, ein Zeichen mehr einzugeben. Wado U. schrieb: >> Aber so wird das nicht funktionieren...da er nur die erste Zahl >> einliest, alles nach dem ersten Punkt wird ignoriert. >> > ja hast recht, aber ich Brauche später sowieso nur die Jahreszahl, da > ich das Alter berechnen möchte. > > Wie kann ich denn es so machen dass er nur die Jahreszahl betrachtet und > Datum und MOnat nicht ? Warum bittest du den Benutzer überhaupt, Tag und Monat einzugeben, wenn du die danach sowieso verwerfen willst?
Rolf M. schrieb: > Aber wehe, jemand kommt auf die Idee, ein Zeichen mehr einzugeben. Da hast du 100% recht... sichere Eingabe würde ich eh nicht mit scanf machen.
:
Bearbeitet durch User
Beitrag #6521580 wurde von einem Moderator gelöscht.
Wado U. schrieb: > aber ich Brauche später sowieso nur die Jahreszahl, da > ich das Alter berechnen möchte. Na nur mit der Jahreszahl wird es nicht reichen. Bsp.: Geboren am 22.12.2020 Eingabe erfolgt am 01.01.2021 Dann wäre das Ergebnis 2021 - 2020 = 1 (mh...irgendwie falsch, oder?)
:
Bearbeitet durch User
Wado U. schrieb: > int eingabeDatum(); Das ist eine Funktionsdeklaration. - Funktion wegen der runden Klammern. - Deklaration, weil kein Code kommt sonder mit ; abgeschlossen wird Diese braucht man, bevor die Funktion das erste mal aufgerufen wird. Eine Definition (also der Funktionscode) ist auch gleichzeitig eine Deklaration. Da du die Funktion vor dem Aufruf in main() definierst, ist die extra Deklaration nicht nötig. Und C ist nicht Pascal. Der Rückgabewert hat nicht den Funktionsnamen.
Das ist schon der dritte Post mit stümperhaftem Anfängercode. Wie wäre es, erst einmal ein Lehrbuch durchzuarbeiten. Die Beispiele darin auszuprobieren und Teile einfach mal im Einzelschritt sich anzuschauen. Generation von Programmierern haben es so gelernt. Nur mit einem Buch. Ganz ohne Internet. Einfach immer 5 fehlerhafte Zeilen zu posten, damit kommt man nicht weiter. Und die Leute hier sind irgendwann von Anfängern, die sich nicht mal selber helfen können, genervt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.