Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
FILE *datei;
char zeile[1024];
int zeilenanzahl;
zeilenanzahl = 0;
datei = fopen("bla.txt", "r");
while(!feof(datei))
{
fgets(zeile, 1024, datei);
zeilenanzahl++;
}
fclose(datei);
printf("Die Datei hat %d Zeilen\n", zeilenanzahl);
Ja. Aber es liest maximal soviel Zeichen ein, wie in das Array passen. Also unter Umständen nicht eine komplette Zeile, wenn die Zeile zu lang ist.fgets liest ja nur eine Zeile ein.
Nein, nein, nein. Nicht mit feof. Das kann zu einer Endlosschleife führen und erzähle ich nun zum x-ten mal...und für eine Schleife kann man mit feof(filevariable) prüfen, ob das Dateiende erreich wurde
while (fgets(zeile, sizeof zeile, datei) != NULL) {
if (zeile[0] != '\0' && zeile[strlen(zeile+1)] == '\n') zeilenanzahl++;
}
Ja. Aber es liest maximal soviel Zeichen ein, wie in das Array passen. Also unter Umständen nicht eine komplette Zeile, wenn die Zeile zu lang ist.
int File::readline(FILE *file, char *buffer, int maxlen)
{
int i;
if(maxlen < 1)
return -1;
if(NULL == fgets(buffer, maxlen, file))
{
*buffer = '\0';
return 1;
}
i = strlen(buffer) - 1;
if(i >= 0 && buffer[i] == '\n')
buffer[i] = '\0';
else
{
while(fgetc(file) != '\n');
}
return 0;
}
Ob etwas überflüssig ist oder nicht, möchte ich doch selbst entscheiden..Ganze Zeile, überflüssigen Rest überspringen
Nö. Du hast da auch eine Endlosschleife wenn fgetc EOF liefert.(Die Funktion hast du schon öfter gesehen,
also denk ich sie funktioniert unter jeden Bedingungen.
FILE* f = fopen("bla.txt","r");
if(f == NULL) return -1;
char temp[512];
while(fgets(temp,512,f) != NULL) printf(temp);
fclose(f);
for(i = 0; i < NUMBER;i++) {
fgets(line[i],LENGTH,file);
feld[i] = line[i];
}