peecee
2003-03-20, 20:15:04
Hallo
Ich spiele gerad mit C rum und hab ein kleines Programm geschrieben.
Nun zu meinem Problem beim ersten Durchlauf arbeitet es korrekt.
Wenn man an dieser Stelle des codes angelangt ist und j eingibt.
printf("Willst du eine andere Datei oeffnen ? [j/n]: ");
dadurch wird die grosse while Schleife noch einmal ausgeführt.
dann wartet das Programm nicht auf eine Eingabe bei dem aufruf von "gets".
Warum wartet das prog nicht wie beim ersten Durchlauf auf ein Eingabe.
Ich hab auch schon versucht mit fflush den Tastaturbuffer zu leeren weil ich dachte vielleicht liegts daran.
hier der Code
#include <stdio.h>
#define DEBUG
int main()
{
int exit = 0;
char otherfile;
char fpath[150];
FILE *rfile;
while(exit == 0)
{
fflush;
printf("Gib den absoluten Pfad zu der Quellcode Datei an: ");
gets(fpath);
#ifdef DEBUG
puts(fpath);
#endif
if ((rfile = fopen(fpath, "rt")) == NULL)
{
printf("%s kann nicht geoeffnet werden !!\n",fpath);
printf("Willst du eine andere Datei oeffnen ? [j/n]: ");
scanf("%c", &otherfile);
if(otherfile == 'j' || 'n')
{
if(otherfile == 'n')
{
exit = 1;
}
}
}
else
{
printf("%s ist zum lesen geöffnet.",fpath);
}
}
return 0;
}
mfg peecee
Ich spiele gerad mit C rum und hab ein kleines Programm geschrieben.
Nun zu meinem Problem beim ersten Durchlauf arbeitet es korrekt.
Wenn man an dieser Stelle des codes angelangt ist und j eingibt.
printf("Willst du eine andere Datei oeffnen ? [j/n]: ");
dadurch wird die grosse while Schleife noch einmal ausgeführt.
dann wartet das Programm nicht auf eine Eingabe bei dem aufruf von "gets".
Warum wartet das prog nicht wie beim ersten Durchlauf auf ein Eingabe.
Ich hab auch schon versucht mit fflush den Tastaturbuffer zu leeren weil ich dachte vielleicht liegts daran.
hier der Code
#include <stdio.h>
#define DEBUG
int main()
{
int exit = 0;
char otherfile;
char fpath[150];
FILE *rfile;
while(exit == 0)
{
fflush;
printf("Gib den absoluten Pfad zu der Quellcode Datei an: ");
gets(fpath);
#ifdef DEBUG
puts(fpath);
#endif
if ((rfile = fopen(fpath, "rt")) == NULL)
{
printf("%s kann nicht geoeffnet werden !!\n",fpath);
printf("Willst du eine andere Datei oeffnen ? [j/n]: ");
scanf("%c", &otherfile);
if(otherfile == 'j' || 'n')
{
if(otherfile == 'n')
{
exit = 1;
}
}
}
else
{
printf("%s ist zum lesen geöffnet.",fpath);
}
}
return 0;
}
mfg peecee