C- Programmieren: textdatei in array einlesen

Hallo,
ich lerne gerade C - Programmieren (ich weiss das das fuer mich als Anfaenger unguenstig ist, aber ich brauche das fuer die Arbeit).
Im Moment probiere ich ein Datei, genauer gesagt eine Spalte mit Zahlen einzulesen um dann damit weiterzuarbeiten.
Als (vereinfachtest) Beispiel moechte ich Kilometer einlesen und das alles in Fuss umrechnen.

Also dachte ich ich nehme die Datei, lese sie in ein Array ein und rechne dann mit den Array weiter.

Allerdings weiss ich nicht, wie man eine Datein in ein array einliest (nur wie man einen einzelnen Wert in ein array schreibt) . Bis jetzt kann ich die Datei immer nur einlesen und auf dem Bildschirm wieder ausgeben.

Kann mir vielleicht jemand helfen?

So weit bin ich schon:

#include

int main() {
float c;
FILE *file; //Pointer

file = fopen(„rot.txt“, „r“);

if(file==NULL) {
printf(„Error: can’t open file.\n“);
return 1;
}
else {
printf(„File opened successfully. Contents:\n\n“);

while(1) { /* keep looping… */
c = fgetc(file);
if(c!=EOF) {
printf("%c", c); // auf Bildschirm schreiben
rot[1] = c;
}
else {
break; // abbrechen wenn Ende des Files
}
}
printf("\n \n \t rot[1] %lf „, rot[1]);
printf(“\n\nNow closing file…\n");
fclose(file);
return 0;
}

}

Hallo,

ich lerne gerade C - Programmieren (ich weiss das das fuer
mich als Anfaenger unguenstig ist, aber ich brauche das fuer
die Arbeit).
Im Moment probiere ich ein Datei, genauer gesagt eine Spalte
mit Zahlen einzulesen um dann damit weiterzuarbeiten.
Als (vereinfachtest) Beispiel moechte ich Kilometer einlesen
und das alles in Fuss umrechnen.

Wie sieht so eine Datei aus? Konkretes Beispiel mit 10 Zeilen?

Grüße

CMБ

also im Moment sieht meine Datei noch so aus:

0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0

nicht besonders kreativ. Aber man muss ja klein anfangen…

Hallo

also im Moment sieht meine Datei noch so aus:
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0

Aha. Die „kanonische“ Variante, in C Daten
einzulesen, wäre imho mit der fgets/sscanf-
Kombination. Beispiel:

#include 

 int main() 
{
 char fname[] = "rot.txt";
 char zeile[128]; /\* Zeilenbreite max. \*/
 float rot[512]; /\* max. Anzahl werte \*/
 int i, nRot = 0; /\* noch 0 Werte \*/
 FILE \*fp = fopen(fname,"rt");

 /\* Teil 1: Einlesen \*/
 printf("Lese %s\n", fname);
 if(fp == NULL) {
 perror(fname);
 return 1;
 }
 
 while(fgets(zeile, sizeof(zeile), fp)) { 
 float val;
 if(sscanf(zeile, "%f", &val) \> 0) {
 rot[nRot] = val;
 nRot++;
 }
 }
 fclose(fp);

 /\* Teil 2: Auswerten \*/
 printf("%d Werte gefunden\n", nRot);
 for(i=0; i

Grüße

CMБ

Danke,
das funktioniert.
Aber ich habe nochmal eine Frage:
was macht denn das >0 bei [if(sscanf(zeile, „%f“, &val) > 0)] ?
Heisst das das nur positive Werte eingelesen werden?

beste Gruesse