Zeilen überspringen
-
Das bringt mich ja auch nicht wirklich weiter. Dass die Zeilen eingelesen werden weiss ich ja, aber ich will die nachfolgenden 10 Zeilen (nach fgets) in einer Matrix haben und dann wieder die 10 Zeilen danach und dann ...
Hab aber irgendwo nen Denkfehler drin.
-
"Ich glaube ich weiß! Du liest 10mal c ein. Dann enthält doch c aber immer nur die letzte eingelesene Zeile, und nicht alle 10. Du müsstest also jede Zeile irgendwohin speichern, bevor du das nächste Mal c einliest. Verstanden, was ich meine? "
Klingt gut. Werd ich mal nachschauen. DANKE!
-
Bekomm das nicht so ganz hin. Wo speichere ich die Zeile hin, damit ich die nächst einlesen kann?
-
Ich brauch jeweils 10 Zeilen für meine Berechnung.
also heisst das das immer 10 zeilen zusammen gehören? willst du das überlappend machen oder liest du wirklich 10 zeilen ein... machst dann damit irgendwas (was auch immer) und dann ab damit über den jordan und die nächsten 10 zeilen?...
in dem fall kannst du das in etwa in der art machen...
char temp[10][1024] //array für 10 strings mit maximaler länge von jeweils 1023 (ein byte fürs nullbyte...)
wenn das array zu gross für den stack werden sollte (weil deine zeilenlänge exorbitante grössen annimmt) kannst du es ja auch mit malloc allokierenohne fehler abfangen usw und ungetestet so...
//10 zeilen einlesen... while(!feof(fp){ for(i=0;i<10;++i) fgets(temp[i],1024,fp); //was auch immer mit den 10 zeilen machen willst.. wenn du wissen willst wieviele zeichen jeweils eingelesen wurden kannst du dir den rückgabewert von fgets merken sonst musst du am ende nochmal ein strlen rüberjagen... }
ist so ein typisches problem das sich mit c++ wesentlich komfortabler lösen lässt...
-
Hallo!
Danke für deinen Tipp! Habe das mal versucht. Wollte die Zeile einlesen, dann abspeichern. wenn ich dann 10 Zeilen abgespeichert habe in datei_ptr4 möchte ich diese in eine Matrix einlesen. Habe das ganze wie folgt versucht, muss aber irgendwie anderst gehen. Es werden nicht die richtigen Werte eingelesen.
Kannst du vielleicht noch mal über den code schauen und mir weiter helfen?Gruß
char c[3000];
while (!feof(datei_ptr))
{
for(i=0; i<10; i++)
{
fgets(c,3000,datei_ptr);
fprintf (datei_ptr4,"%s\n",c);
}//Einlesen der Matrixelemente
for (i=0; i< 10; i++)
{
for (j=0; j< MAX_SPALTEN; j++)
{
fscanf (datei_ptr4,"%lf",&A[i][j]);
}}
}
-
Guten Morgen,
in deiner Datei_ptr4 stehen aber die richtigen Werte, d.h. das Einlesen hat geklappt? Bist du dir auch sicher bezüglich des %lf? Wie hast du Feld A initialisiert? Wenn das nicht zusammenpasst können die komischsten Sachen rauskommen...
-
HALLO!!
Vielen Dank für eure Hilfe! Es hat jetzt geklappt.
-
@ Biene:
Kannste mal bitte den ganzen Quellcode posten ? Würde mich mal interessieren, wie alles zusammen aussieht !