#include <stdio.h>
#define BUF 255

char temp[BUF];
char puffer[BUF];

/*Auslesen der n-ten Zeile*/
char *getsline_number(int n, FILE *file)
{
 int i;
 for(i=0; i<n-1; i++)
  if(fgets(temp, BUF, file) == NULL)
  /*Bis zu n-1ten Zeile lesen*/
    return NULL; /*Zeile scheint nicht zu existieren*/
 if(fgets(puffer,BUF,file)==NULL)
 /*Stream ist jetzt in der n-ten Zeile*/
  return NULL; /*Zeile scheint nicht zu existieren*/
 return puffer; /*Zeile an Aufrufer zurück*/
}


int main(int argc, char **argv)
{
 FILE *f;
 int line;
 char *linenr;

 if(argc < 2)
  {
   fprintf(stderr, "Verwendung : %s datei\n",*argv);
   exit(0);
  }

 f=fopen(argv[1],"r");
 if(f == NULL)
  {
   perror("Fehler beim öffnen");
   exit(0);
  }

 printf("Welche Zeile wollen sie lesen : ");
 scanf("%d",&line);

 linenr=getsline_number(line, f);
 if(linenr == NULL)
  {
   fprintf(stderr, "Fehler beim Lesen der %d-ten Zeile??\n");
   exit(0);
  }
 printf("Zeile %d : %s\n",line,linenr);
 return 0;
}

