loadtxt2.c

Index vorige Seite nächste Seite
/* Beispielprogramm fuer das Lesen von Daten aus einer Textdatei
   unter Benutzung der Funktionen
     --> fopen
     --> fscanf
     --> fclose
   Unter Benutzung der im Text eingebundenen Kommentare zur Fest-
   stellung des korrekten Datenformates */

/* 20.06.1997 Ulrich Kritzner */

#include <stdio.h>
#include <string.h>

float x[20],y[20];
int anz=0;

void ausgabe(void)
{
  int i;

// Ausgabe der Anzahl der Punkte :
  printf("\n\n Anzahl der Punkte : %d",anz);

// Ausgabe der Koordinaten :
  for (i=0;i<anz;i++) {
    printf("\n\n Punkt %d",i+1);
    printf("\n   x-Koordinate : %f",x[i]);
    printf("\n   y-Koordinate : %f",y[i]);
  }
}

void lesen(char *s)
{
  FILE *datei;
  int i;
  float f1,f2;
  char s1[21],s2[21];

  datei=fopen(s,"rt");    // Textdatei zum Lesen oeffnen
     // "rt" : read textfile

  if (datei!=NULL) {      // Wenn Datei geoeffnet werden konnte
    if (fscanf(datei,"%s %d",s1,&anz)!=2)
      anz=0;              /* stellt beim Lesen fest, ob 2 Datensaetze
			     erfolgreich gelesen werden konnten */

    if (strcmp("Anzahl:",s1)!=0)  // Vergleich des Datenformate
      anz=0;

    for (i=0;i<anz;i++) {
      if (fscanf(datei,"%20s %f %20s %f",&s1[0],&f1,&s2[0],&f2)!=4)
	anz=0;            /* stellt beim Lesen fest, ob 4 Datensaetze
			     erfolgreich gelesen werden konnten */

      if (strcmp("x:",s1)!=0)     // Vergleich des Datenformats
	anz=0;
      if (strcmp("y:",s2)!=0)     // Vergleich des Datenformats
	anz=0;

      x[i]=f1;
      y[i]=f2;
    }
    fclose(datei);        // Datei schlieszen
  }
}

int main(void)
{
  lesen("punkte.txt");
  ausgabe();
  return 0;
}
Index vorige Seite nächste Seite

Autor: Ulrich Kritzner