Text und Zahlen aus Datei einlesen!
-
Also, ich habe ein Problem.
Ich habe bereits ne textdatei eingelesen und die bestimmten Zeichen, die wichtig sind für mich in ein Array übergeben. Dann habe ich Pointer immer auf bestimmte Array - Stellen gesetzt und ich kann jetzt zb den text der am pointer (beispiel) q3 steht auch wieder ausgeben. nur ich will dann die zahlen, die in dem text und dann im array und später auf nem pointer steht auch zum weiterrechnen verwenden. Aber wenn ich ne int zahl definiere, und zb schreibe:int b=&ary[7]; //ary heißt mein arrayfeld
dann schreibt er immer nen fehler, das der typ für den pointer oder so nicht passt. Das liegt wahrscheinlich daran, dass er die textdatei nur als text bzw. char einliest. wie kann ich jetzt machen, das ich auch die möglichkeit habe, dass ich zb. die zahl in der datei die an der dritten stelle steht, der ersten Zeile, auch verwenden kann, ohne das irgendwelche zeichen rauskommen?
das hab ich:
int i; char z; FILE *datei; datei=fopen("C:\\Users\\Jürgen\\Desktop\\Versuch.txt","r"); for(i=0; i<1000;i++) { z=fgetc(datei); if(z!=';') { ary[i]=z; } if (z==';') { ary[i]='\n' ; } }das liest mir den text ein und springt danach bei einem strichpunkt in die nächste Zeile, das geht ja soweit!
wie weiter????
muss ich z als int definieren?????
bitte ne lösung.
P.S.: bin anfänger, geb mir aber mühe, sitz aber hier fest!
würd mich freuen über lösungen, die ich verstehe und die gehen!Danke
Jürgen
-
Deine Zahl steht ja als Text irgendwo in Deinem Array. Wenn Du einen Pointer auf den Beginn Deiner Zahl hast, kannst Du sie mit atoi bzw. atof von der Textdarstellung in eine echte int bzw. Fließkommazahl umwandeln.
-
In deinem Ansatz (int b=&ary[7];) versuchst du ja auch, die Adresse eines char zuzuweisen (& ist der Adress-Operator). Das passt natürlich nicht. Du willst ja eine u.U. mehrstellige Zahl, die im char-Array liegt, in einen int umwandeln. Dazu hat Belli den richtigen Rat geliefert. Den Wert würdest du übrigens mit int b=ary[7] bekommen (also bei '1' wäre der Wert 49), aber das willst du nicht.
-
Danke, aber wie verwende ich atoi bzw atof???
bitte um ein beispiel und schon mal danke!!!
-
Hier gibt's ein Beispiel:
http://msdn.microsoft.com/de-de/library/yd5xkb5c.aspx
Da solltest du öfter mal 'reinschauen...
-
Danke!
Werd aber ned schlau draus ganz!
ach ja, und ich hab ja alles in arrays gespeichert, nicht in strings, oder is das selbe??????
Hm...
kapier trotz anleitung auf der seite ned wie ichs verwenden soll!!!
-
Ja, ein String ist in C ein Array of char.
Was verstehst du denn an dem Beispiel nicht?? Kopier dir das in deine IDE und probier es aus. Geh dabei schrittweise mit dem Debugger durch, dann verstehst du das schon. Ansonsten frag noch mal nach (aber ein wenig konkreter).