Notizkalendar programmieren. -> Denkanstoß :)



  • Nabend zusammen,
    da ich momentan dabei bin die C-Programmierung zu erlernen, wollte ich für mein Studium einen kleinen Notizkalendar programmieren.

    Und zwar habe ich mir das ungefähr so vorgestellt:

    Menue1

    Notiz abrufen....1
    Notiz einfügen...2

    Ihre Wahl: X

    _______________________________

    So wenn man nun bspw die 2 eingibt soll folgendes erscheinen:

    _______________________________
    Menue2
    Montag.....1
    Dienstag...2
    Mittwoch...3
    usw...
    _______________________________
    Nachdem man dann bspw die 1 wählt, soll man (denke mal mit dem scanf) ein Satz eingebene werden.
    _______________________________
    Ihre Wahl: Montag
    Gegeben Sie eine Notiz ein: Blubbbbbbbbbbbbbb

    Weitere Notiz (j/n)?
    Zurück ins Menu1
    Zurück ins Menue2
    _______________________________

    Ist das realisierbar?

    Also ich hab schon bisschen was ausprobiert aber so langsam bin ich am Ende mit meinem "Latein" xD
    Wie kann ich denn bspw. nach der EWingabe in Menue1 das Menue2 öffnen lassen?
    Und es ist eig das selbe Spiel nach der Eingabe in Menue2 eine Eingabe zu machen.

    Ja viel Zeug ich weiß...Aber ich will das ma in Angriff nehmen.

    Danke im vorraus.

    Edit:

    #include <stdio.h>													//Bibliothek für printf, scanf, ...
    #include <conio.h>													//Bibliothek für getch, gets, ...
    #include <stdlib.h>
    #include <string.h>
    
    int menu (void)
    
    {
    
    int m;
    
    printf("\nMenue\n\n");
    printf("=======================\n\n");
    printf("Waehlen Sie eine Option\n\n");
    
    printf("Notiz abrufen......1\n");
    printf("Notiz eintragen....2\n\n");
    
    printf("Ihre Wahl: ");
    scanf("%d", &m);
    
    return m;
    
    }
    
    int main (void)
    {
    	int i;
    	do
    	{
    			i = menu();
    			printf("Das Hauptprogramm wuerde Menuepunkt %d abarbeiten", i);
    	}
    	while((i>0) && (i<=2));
    
    	return 0;
    
    }
    
    int menu2 (void)
    {
    
    int m;
    
    printf("\nMenue\n\n");
    printf("=======================\n\n");
    printf("Waehlen Sie eine Option\n\n");
    
    printf("Montag..........1\n");
    printf("Dienstag........2\n");
    printf("Mittwoch........3\n");
    printf("Donnerstag......4\n");
    printf("Freitag.........5\n");
    printf("Samstag.........6\n");
    printf("Sonntag.........7\n\n");
    
    printf("Ihre Wahl: ");
    scanf("%d", &m);
    
    return m;
    
    }
    


  • Wie sind denn deine Vorkenntnisse?

    Wie willst du denn die Daten(Notizen) ablegen/speichern?

    Vor allem sollte die Bedienung einheitlich sein. Mit scanf("%d", &m); kannst du kein j/n einlesen.



  • Ja Vorkenntnisse habe ich eigentlich keine xD
    Nur sopaar grundlegende Dinge.

    Kann man nicht Die Sätze (Notizen) in dem Speicher hinterlegen?

    Oder muss ich da mit files arbeiten?



  • Buster92 schrieb:

    Kann man nicht Die Sätze (Notizen) in dem Speicher hinterlegen?

    Wo denn sonst.
    Als Array oder Liste?
    Statisch oder dynamisch?

    Buster92 schrieb:

    Oder muss ich da mit files arbeiten?

    Wäre sinnvoll, wenn du den Rechner mal ausschaltest.
    Als binäre Datei oder Textdatei?
    XML oder eigenes Format?

    Es gibt noch mehr Auswahlmöglichkeiten.



  • Ja dann am besten in einer Textdatei.
    Hab grad schonmal bisschen rumprobiert. Aber bekomm das net gebacken.

    http://www.c-programmieren.com/C-Lernen.html#Dateibezogene Ein- und Ausgaben

    Da steht ja eig alles.
    Muss ja eigentlich für jeden Tag eine einzelne File anlegen, oder?
    Also montag.txt, dienstag.txt, usw



  • Buster92 schrieb:

    http://www.c-programmieren.com/C-Lernen.html#Dateibezogene Ein- und Ausgaben

    OMG. Keine Quelltextformatierung, kein fclose(), fflush(stdin), ...
    LErn es lieber richtig. Such dir etwas anderes.



  • Was DirkB damit womöglich sagen wollte: Such Dir eine andere Lernhilfe als diese Seite.
    Hier im Forum gibt es Threads, in denen Tutorials ausdrücklich empfohlen werden und es wird auch vor so manchem gewarnt, das groben Unfug bis gefährlichen Bockmist "lehrt".

    Generell bleibt Dir bei Deinem Projekt die Wahl, alles so zu machen, wie es Dir gefällt oder besser von der Hand geht. Wenn Du alles in eine einzige Datei ablegen möchtest, geht das natürlich. Es bietet sich ebenso an, einzelne Tage in einzelne Dateien auszulagern.

    Bein Einlesen der "Notizen" könntest Du Dir sicher noch die ein oder andere Überraschung ersparen, wenn Du hier im Forum etwas nach scanf suchst. Stichwort Whitespace-Übergang, Formatstring und weiß der Geier noch alles 🙂



  • Also ich hab mal etwas weitergemacht & ich habe mich für txt-Dateien entscheiden für die Notizen. Je Tag eine .txt-Datei. Bsp: mo_notiz.txt für Montag

    So das klappt auch alles soweit mit Speichern und Lesen.
    Bloß frage ich mich warum mein Menu - obwohl es am Anfang steht - nicht in der Konsole angezeigt wird. Und warum schließt mein Programm, wenn ich die Montags-Notiz nach dem schreiben lesen will?

    Noch was: Wenn ich im Menu die 1 bzw 2 wähle möchte ich in ein 2tes Menu gelangen mit Mo - So Aufbau. Realisiere ich das mit einer for Schleife? zB (if x=1) bzw (if x=2)

    Code:

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int menu (void){
    
    int m;
    
    printf("\nMenue\n\n");
    printf("=======================\n\n");
    printf("Waehlen Sie eine Option\n\n");
    
    printf("Notiz abrufen......1\n");
    printf("Notiz eintragen....2\n\n");
    
    printf("Ihre Wahl: ");
    scanf("%d", &m);
    
    return m;
    
    }
    
    int main(void) {
    
    	FILE *fp;
    	char zeile[80];
    
    	// Schreiben Montag
    	if ((fp = fopen("mo_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Montag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Lesen Montag
    	if ((fp = fopen("mo_notiz.txt","r+")) == NULL) {
    		printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("Eingegebene Notiz/en fuer Montag\n");
    	while (fgets(zeile, 79, fp)) printf("%s", zeile);
    	system("pause");
    	return 0;
    
    	// Schreiben Dienstag
    	if ((fp = fopen("di_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Dienstag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Schreiben Mittwoch
    	if ((fp = fopen("mi_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Mittwoch eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Schreiben Donnerstag
    	if ((fp = fopen("do_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Donnerstag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Schreiben Freitag
    	if ((fp = fopen("fr_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Freitag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Schreiben Samstag
    	if ((fp = fopen("sa_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Samstag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    
    	// Schreiben Sonntag
    	if ((fp = fopen("so_notiz.txt","w")) == NULL) {
    		printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    		system("pause");
    		exit(1);
    	}
    	printf("\nNotiz/en fuer Sonntag eingeben (Ende mit @ am Zeilenanfang): \n");
    	gets(zeile);
    	while (*zeile!='@') {		// '\n' klappt meist nicht
    		strcat(zeile,"\n");
    		fputs(zeile,fp);
    		gets(zeile);
    	}
    	fclose(fp);
    }
    


  • Du musst deine Funktion menu() auch von main() aus aufrufen.

    Nimm statt gets(zeile) besser fgets(zeile, 79, stdin)

    Statt dem return 0; in Zeile 53 solltest du besser ein fclose(fp); machen.



  • Also wenn ich im main() das die menu() FUnktion einfüge gibts en Fehler.
    Hab jetzt einfach das menu weggemacht und das Menu so in die Main Funktion ganz oben eingefügt.

    Und jetzt funktioniert das auch alles und bricht nicht ab dank des fclose(fp);
    🙂 Bloß steht da nur noch "Bitte drücken sie eine Taste.." xD

    Wenn ich noch Fragen habe, meld ich ich mich 🙂

    Vielen Dank!



  • Buster92 schrieb:

    Also wenn ich im main() das die menu() FUnktion einfüge gibts en Fehler.

    Und wie heißt der Fehler?

    Buster92 schrieb:

    Bloß steht da nur noch "Bitte drücken sie eine Taste.." xD

    Das kommt vom system("pause");



  • Also da steht: "Loka Funktionsdefinition sind unzulässig"
    Und im Code selbst steht in roter "Schlange" bei "{" "Es wurde ein ; erwartet"
    Komisch..



  • Buster92 schrieb:

    Also da steht: "Loka Funktionsdefinition sind unzulässig"
    Und im Code selbst steht in roter "Schlange" bei "{" "Es wurde ein ; erwartet"
    Komisch..

    Nix Komisch. Der Compiler hat immer Recht.
    Lokale Funktionsdefinitionen gibt es in C nicht. Das ist bei Pascal.

    Du solltest auch nur die Funktion menu() aufrufen und nicht in main() definieren (dahinkopieren).

    Ich beziehe mich jetzt auf dein Code aus deinem Post vom 23.11.2011 um 17:54:58.
    Da hätte es gereicht in Zeile 28 menu(); hinzuschreiben.

    Oder damit du deine Auswahl auch zurückbekommst (immer noch Zeile 28):

    int Auswahl;
    
    Auswahl = menu();
    


  • So, mein Grundgerüst ist nun fertig.

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(void) {
    
    	FILE *fp;
    	char zeile[80];
    
    	//Hauptmenü
    		int wahl;
    		printf("-----Notizkalendar------");
    		printf("\nMen\x81\n\n");
    		printf("========================\n\n");
    		printf("W\x84hlen Sie eine Option\n\n");
    
    		printf("Notiz/en abrufen\t1\n");
    		printf("Notiz/en einf\x81gen\t2\n");
    		printf("Notiz/en l\x94schen\t3\n\n");
    
    		printf("Ihre Wahl: ");
    		scanf("%d", &wahl);
    
    		switch(wahl){
    		int tag;
    				case 1: printf("Sie haben Notiz abrufen gew\x84hlt\n");						//Wahl 1 Notizen lesen in Tag
    
    				//Untermenü Wochentag-Auswahl
    
    				printf("\nUntermenue\n\n");
    				printf("=======================\n\n");
    				printf("Waehlen Sie einen Tag\n\n");
    
    				printf("Montag\t1\n");
    				printf("Dienstag\t2\n");
    				printf("Mittwoch\t3\n");
    				printf("Donnerstag\t4\n");
    				printf("Freitag\t5\n");
    				printf("Samstag\t6\n");
    				printf("Sonntag\t7\n");
    				printf("Ihre Wahl: ");
    				scanf("%d", &tag);
    
    				switch(tag){
    
    				case 1:		// Lesen Montag
    						if ((fp = fopen("mo_notiz.txt","r+")) == NULL) {
    						printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    						exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Montag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    
    						fclose(fp);
    						break;
    
    				case 2: 	// Lesen Dienstag
    						if ((fp = fopen("di_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Dienstag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				case 3: 	// Lesen Mittwoch
    						if ((fp = fopen("mi_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Mittwoch\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				case 4: 	// Lesen Donnerstag
    						if ((fp = fopen("do_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Donnerstag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				case 5: 	// Lesen Freitag
    						if ((fp = fopen("fr_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Freitag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				case 6: 	// Lesen Samstag
    						if ((fp = fopen("sa_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Samstag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				case 7: 	// Lesen Sonntag
    						if ((fp = fopen("so_notiz.txt","r+")) == NULL) {
    							printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    							exit(1);
    						}
    						printf("Eingegebene Notiz/en fuer Sonntag\n");
    						while (fgets(zeile, 79, fp)) printf("%s", zeile);
    						fclose(fp);
    
    				}
    					break;
    								case 2: printf("Notiz/en eintragen\n\n");						//Wahl 2 Notiz lesen an Tag
    										//Untermenü Wochentag-Auswahl
    
    								printf("\nUntermenue\n\n");
    								printf("=======================\n\n");
    								printf("Wa\x84len Sie eine Option\n\n");
    
    								printf("Montag\t1\n");
    								printf("Dienstag\t2\n");
    								printf("Mittwoch\t3\n");
    								printf("Donnerstag\t4\n");
    								printf("Freitag\t5\n");
    								printf("Samstag\t6\n");
    								printf("Sonntag\t7\n");
    								printf("Ihre Wahl: ");
    								scanf("%d", &tag);
    
    								switch(tag){
    
    								case 1: // Schreiben Montag
    										if ((fp = fopen("mo_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Montag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 2: // Schreiben Dienstag
    										if ((fp = fopen("di_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Dienstag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 3: 	// Schreiben Mittwoch
    										if ((fp = fopen("mi_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Mittwoch eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 4: 	// Schreiben Donnerstag
    										if ((fp = fopen("do_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Donnerstag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 5: 	// Schreiben Freitag
    										if ((fp = fopen("fr_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Freitag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 6: 	// Schreiben Samstag
    										if ((fp = fopen("sa_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Samstag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    										break;
    
    								case 7: 	// Schreiben Sonntag
    										if ((fp = fopen("so_notiz.txt","w")) == NULL) {
    											printf("\nDatei konnte nicht zum Schreiben geoeffnet werden.");
    											exit(1);
    										}
    										printf("\nNotiz/en fuer Sonntag eingeben (Ende mit @ am Zeilenanfang): \n");
    										gets(zeile);
    										while (*zeile!='@') {		// '\n' klappt meist nicht
    											strcat(zeile,"\n");
    											fputs(zeile,fp);
    											gets(zeile);
    										}
    										fclose(fp);
    									break;
    		}
    									break;
    	}
    		_getch();
    		return 0;
    }
    

    Wenn ich nun aber auf "Notiz lesen" gehe und dann 2-5 auswähle liest das Programm alle Notizen ab dem gewählten Punkt.
    Auch ist bei der Auflistung Dienstag-Freitag nicht gleich der anderen Tage.
    Aber die Switch Case Funktion müsste doch eig so stimmen...
    ???



  • Da fehlen die break;

    Du hast da für jeden Tag fast den gleichen Code.
    In so einem Fall schreibt man dafür Funktionen.
    Denen kannst du dann den Filenamen und/oder den Tagesnamen übergeben.



  • Ja okay jetzt klappts.

    Ah das dacht ich mir schon -.-

    Ich dachte eigentlich darein mit Schleifen zu arbeiten und dann nach jedem ausgegeben Case wieder ins Menü zurückzuspringen.

    So würde es ja eigentlich funktionieren?



  • Buster92 schrieb:

    Ich dachte eigentlich darein mit Schleifen zu arbeiten und dann nach jedem ausgegeben Case wieder ins Menü zurückzuspringen.

    So würde es ja eigentlich funktionieren?

    Dein main() ist ja jetzt schon nicht zu überblicken.
    Verschachtelte switch lesen sich nicht gut.



  • Nimm statt gets(zeile) besser fgets(zeile, 79, stdin)

    interessiert ihn auch nicht 🙂



  • Ja das habe ich übersehen @ würmchen

    @ DirkB
    Ja, das ist mir auch aufgefallen xD
    Was gibt es denn für Alternativen?

    Wie wäre es denn möglich das Lesen einer Datei in EINE Funktion zu packen?
    Bzw. das Schreiben einer Datei.
    Sprich 2 Funktionen?
    Wäre das machbar bzw "klug"?

    Heißt das also, dass meine bisherige "Arbeit" fürn ***** war xD ?
    Weil ich ja dachte mit dem switch case klappt das so alles...

    Und wie ist es möglich den Inhalt ALLER Dateien aufeinmal zu löschen? Überhaupt möglich?



  • Schau Dir doch mal n paar Codeschnipsel mit dem Stichwort call by reference an.

    Du könntest es theoretisch auch in eine einzige Funktion packen und hättest ein Funktionsargument als "Schalter", ob geschrieben oder gelesen werden soll... Möglich ist viel 🙂

    Und im Grunde ist am Anfang keine Arbeit vergebens. Hauptsache ist, dass man aus eigenen Fehlern lernt und sich weiterentwickelt.



  • So okay 🙂
    Danke schonmal für den Hinweis.

    Also wenn cih nach call by reference google finde ich nur so Schnipsel wo Zeichen vertauscht werden. Also mit Zeigern * .

    So aber jetzt versteh ich schonmal, dank "galileo computung openbook" wie das mit den Funktion abläuft 😃

    Denke so wird es auch übersichtlicher.

    Nur halt noch die Frage wie ich das switch case umgehe..?

    Also so hab ich das jetzt mal gemacht

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void hauptmenue(void) {
    		//Hauptmenü
    		int wahl;
    		printf("-----Notizkalendar------");
    		printf("\nMen\x81\n\n");
    		printf("========================\n\n");
    		printf("W\x84hlen Sie eine Option\n\n");
    
    		printf("Notiz/en abrufen\t1\n");
    		printf("Notiz/en einf\x81gen\t2\n");
    		printf("Notiz/en l\x94schen\t3\n");
    		printf("Programm beenden\t4\n\n");
    
    		printf("Ihre Wahl: ");
    		scanf("%d", &wahl);
    		}		
    
    void untermenue(void) {
    		//Untermenü Wochentag-Auswahl
    		int tag;
    		printf("\nUntermenue\n\n");
    		printf("=======================\n\n");
    		printf("Waehlen Sie einen Tag\n\n");
    		printf("Montag\t1\n");
    		printf("Dienstag\t2\n");
    		printf("Mittwoch\t3\n");
    		printf("Donnerstag\t4\n");
    		printf("Freitag\t5\n");
    		printf("Samstag\t6\n");
    		printf("Sonntag\t7\n");
    		printf("Ihre Wahl: ");
    		scanf("%d", &tag);
    		}
    
    int main(void) {
    
    	hauptmenue();
    	untermenue();
    	_getch();
    	return 0;
    
    }
    

    Edit: Ist es möglich aus

    if ((fp = fopen("mo_notiz.txt","r+")) == NULL) {
    		printf("\nDatei konnte nicht zum Lesen geoeffnet werden.");
    		exit(1);
    		}
    		printf("Eingegebene Notiz/en fuer Montag\n");
    		while (fgets(zeile, 79, fp)) printf("%s", zeile);
    		fclose(fp);
    

    diesem Code einen einzelnen zu Machen der dann selbst den Pfad ändert zur Datei?


Anmelden zum Antworten