Array... Zahlen-Datei auslesen

Hallo ihr :=)

Ich habe ein Problem, ich möchte aus einer Datei, in der in Jeder Zeile eine Zahl steht in mein Programm übernehmen… habe auch schon paar Versuche gemacht, aber leider bekomme ich eine endlosschleife…

# include 

int main ( ) {

 FILE \*zahlen; /\* FILE wird in der Adresse von Zahlen gespeichert \*/
 int zahl[19]; /\* Platz für max. 20 Zahlen \*/
 int i=0, k=0; 

 /\* Alle Plätze werden auf Null gesetzt \*/
 for ( i = 0; i

Ich möchte zwar noch ziemlich viel mit dem Programm anstellen, aber zuerst muss ich die Datei einlesen und auch die Liste wieder ausgeben können. Danke schon mal. 
LG S.I.E

Howdy,

int zahl[19]; /* Platz für max. 20 Zahlen */

Punkt 1: dein Array ist nicht gross genug für 20 Element.

Punkt 2: Ersetz mal deine Schleife durch

 for (k=0; 1 == fscanf(zahlen,"%d\n",&zahl[k]);k++)
 {
 ;
 }
 for (i = 0; i 

und schau, was in den einzelnen Zahlen drinnen steht.

Gruss
norsemanna
# include 
# include 
int main ( ) {

 FILE \*zahlen; /\* FILE wird in der Adresse von Zahlen gespeichert \*/
 int zahl[20]; /\* Platz für max. 20 Zahlen \*/
 int i=0, k=0; 

 /\* Alle Plätze werden auf Null gesetzt \*/
 for ( i = 0; i

Nun bekomme ich den Fehler core dumped, Segmentation fault ??? 
Ich bin nun echt durcheinander :=)

Hi,

> for ( k=0; 1== fscanf (zahlen,"%d%n", &zahl[k]);k++)

Nun bekomme ich den Fehler core dumped, Segmentation fault ???

Du solltest das ganze kopieren, nicht einzelnd abtippen. Da stand im Original nicht %d%n sondern %d\n. %n erwartet einen weiteren Parameter, der aber nicht da ist, deswegen SEGV

Gruss
norsemanna

Vielen Dank für deine Hilfe :=)

ich verwechsle das immer mit java :=), denn in java kann man das machen.

Gibt es in C eigentlich eine Möglichkeit, die Array- Grenze so zu bestimmen, dass es den Zahlen aus der Datei angepasst wird ???

Also, wenn ich nicht wüsste, dass 20 zahlen in der Datei sind, wie müsste ich dann die Array Grenze anlegen? In Java wäre das ja array.length, gibt es nicht sowas auch in C ???

Howdy,

Also, wenn ich nicht wüsste, dass 20 zahlen in der Datei sind,
wie müsste ich dann die Array Grenze anlegen? In Java wäre das
ja array.length, gibt es nicht sowas auch in C ???

unter Benutzung des vector templates, ja (siehe http://www.cplusplus.com/reference/stl/vector/).

#include 

std::vector zahl;
int x;

zahl.reserve(1024); 

for (; 1 == fscanf(zahlen,"%d\n",&x):wink:
{
 zahl.push\_back(x);
}

for (i = 0; i 

Gruss
norsemanna

Vielen Dank für eure Hilfe :=)