Wie zu verwenden fgets() und store jede Zeile einer Datei mit einem array von char-Zeigern?

Schrieb ich das Programm unten, um die zu Lesen jeder Zeile der Datei, und speichern Sie dann jede Zeile in ein array von char-Zeiger für die spätere Verwendung (wie Sortierung nur die Zeiger, nicht die wirkliche strings). Aber das problem ist, dass es hält die Speicherung der gleichen Linie.

Können sagen, dass die Datei aufgerufen file.txt und hat zwei(2) Zeilen mit text.

  first sentence
  second sentence

Den code, den ich schrieb, ist die folgende:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <unistd.h>

int main(){
    FILE *cf;
    cf = fopen("file.txt", "r");
    char line[101];
    char *lines[2];
    char *eof;

    int i=0;
    while((eof = fgets(line, 101, cf)) != NULL){
        lines[i] = eof;
        i++;
    }

    printf("%s\n", lines[0]);
    printf("%s\n", lines[1]);

    system("pause");
    return 0;
}

Die Ausgabe die ich bekomme, ist:

second sentence
second sentence

Aber ich will:

first sentence
second sentence

Was mache ich hier falsch?

Dank für deine Hilfe 🙂

InformationsquelleAutor limitcracker | 2011-10-27

Schreibe einen Kommentar