T
Thomsn
Gast
Ich will ein einfaches Programm schreiben, mit dem ich Datein erstellen kann, löschen, weiterführen etc.
IDE: DEV-C++ 4.9.9.2 (Nutzt ANSI-Standard)
Dabei bin ich auf ein unerwartetes Problem gestoßen.
Es geht um die Funktion: gets()
Hier ein Ausschnitt des Programms.
Das Problem, welches ich habe ist, dass das Programm nach dem Sprung in die Funktion "neue_datei" einfach beendet wird.
Man sieht zwar noch die Ausgabe "Dateiname >", aber das Programm ist beendet.
Es hat also nicht auf die eingabe von "dateiname" gewartet (was ja die aufgabe des "gets()" sein sollte), und folglich wurde auch keine Datei erstellt.
Aber falsch in dem Sinne kann die Funktion nicht sein, denn wenn ich einfach ein Programm schreibe, welches nur diese eine Aufgabe hat, funktioniert der Code.
Der selbe Code, wie der aus der Funktion von oben, funktioniert hier wie erwartet.
Ich weiß einfach nicht, woran es liegt.
BTW, wenn ich den Code nicht in eine Funktion verlagere, also direkt in das switch() herein schreibe, passiert das selbe.
EDIT: oO Ich sehe gerade, dass das Forum die Code-Formatierung nicht übernommen hat...ich hoffe, es ist nicht zu unübersichtlich gewurden...eigentlich war er normal formatiert.
IDE: DEV-C++ 4.9.9.2 (Nutzt ANSI-Standard)
Dabei bin ich auf ein unerwartetes Problem gestoßen.
Es geht um die Funktion: gets()
Hier ein Ausschnitt des Programms.
#include <stdio.h>
void neue_datei();
main()
{
int auswahl;
printf(" [1] neue Datei anlegen\t[2] bestehende Datei bearbeiten\
\n [3] Datei loeschen\t[4] Programm beenden\n>");
scanf("%i", &auswahl);
switch(auswahl)
{
case 1:
neue_datei();
break;
default:
printf("\n\nFALSCHE EINGABE!!");
}
}
void neue_datei()
{
FILE *datei;
char dateiname[70];
printf("\nDateiname >");
gets(dateiname);
datei = fopen(dateiname, "w");
if(datei != NULL)
fclose(datei);
}
Das Problem, welches ich habe ist, dass das Programm nach dem Sprung in die Funktion "neue_datei" einfach beendet wird.
Man sieht zwar noch die Ausgabe "Dateiname >", aber das Programm ist beendet.
Es hat also nicht auf die eingabe von "dateiname" gewartet (was ja die aufgabe des "gets()" sein sollte), und folglich wurde auch keine Datei erstellt.
Aber falsch in dem Sinne kann die Funktion nicht sein, denn wenn ich einfach ein Programm schreibe, welches nur diese eine Aufgabe hat, funktioniert der Code.
#include <stdio.h>
main()
{
FILE *datei;
char dateiname[70];
gets(dateiname);
datei = fopen(dateiname, "w");
if(datei != NULL)
{
fclose(datei);
}
}
Der selbe Code, wie der aus der Funktion von oben, funktioniert hier wie erwartet.
Ich weiß einfach nicht, woran es liegt.
BTW, wenn ich den Code nicht in eine Funktion verlagere, also direkt in das switch() herein schreibe, passiert das selbe.
EDIT: oO Ich sehe gerade, dass das Forum die Code-Formatierung nicht übernommen hat...ich hoffe, es ist nicht zu unübersichtlich gewurden...eigentlich war er normal formatiert.