Liest int-Werte aus einer Textdatei in C

Lesezeit: 1 Minute

Benutzer-Avatar
elh mehdi

Ich habe eine Textdatei, die die folgenden drei Zeilen enthält:

12 5 6
4 2
7 9

Ich kann die verwenden fscanf Funktion, um die ersten 3 Werte zu lesen und in 3 Variablen zu speichern. Aber den Rest kann ich nicht lesen. Ich habe versucht, die zu verwenden fseek Funktion, aber es funktioniert nur mit Binärdateien.

Bitte helfen Sie mir, alle Werte in Integer-Variablen zu speichern.

  • Möglicherweise erhalten Sie hilfreichere Antworten, wenn Sie Ihren Versuch posten und erklären, wie er fehlschlägt.

    – Café

    5. Januar 2011 um 5:15 Uhr

  • fseek() funktioniert gut mit Textdateien, aber es ist nicht klar, warum Sie es verwenden müssen, um die von Ihnen angezeigten Daten zu lesen.

    – Jonathan Leffler

    5. Januar 2011 um 5:29 Uhr

Eine einfache Lösung mit fscanf:

void read_ints (const char* file_name)
{
  FILE* file = fopen (file_name, "r");
  int i = 0;

  fscanf (file, "%d", &i);    
  while (!feof (file))
    {  
      printf ("%d ", i);
      fscanf (file, "%d", &i);      
    }
  fclose (file);        
}

  • @Jonathan Leffler ja, aber gewollt.

    – Vijay Mathew

    6. Januar 2011 um 3:48 Uhr

  • Bei dieser Methode drucken Sie nicht den letzten Wert. Löschen Sie die erste fscanf und lege die printf unter dem fscanf

    – KKKKK

    22. Juli 2020 um 8:52 Uhr


Benutzer-Avatar
MAK

Wie wäre es damit?

fscanf(file,"%d %d %d %d %d %d %d",&line1_1,&line1_2, &line1_3, &line2_1, &line2_2, &line3_1, &line3_2); 

In diesem Fall Leerzeichen in fscanf Übereinstimmung mit mehreren Vorkommen beliebiger Leerzeichen, bis das nächste Token gefunden wird.

  • Erwähnenswert ist vielleicht, dass Sie / er überprüfen sollten, ob er 7 zurückerhält fscanf()da sonst etwas schief gelaufen ist.

    – Jonathan Leffler

    5. Januar 2011 um 5:32 Uhr

1383310cookie-checkLiest int-Werte aus einer Textdatei in C

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy