Strings als Array?!



  • Hallo Leute!

    Ich habe ein Problem mit dem Abspeichern von String. Und zwar lese ich eine Datei ein, die folgendes enthält:

    /

    Diese vier Zeichen stehen untereinander. Es können hier aber variabl auch mehr oder weniger sein. Das ganze möchte ich nun in einer Variablen speichern. Die Deklaration der Variablen ist in einem Struct geschehen:

    struct IniDaten	
    {
    	//hab die unnötigen Teile weggelassen
    	char Operator[256];
    };
    
    struct IniDaten Daten[1000];
    

    Ich brauche also ein For-Schleife, die mir die Daten im Prinzip wie in einem Array speichert. Da aber Strings ja doch recht seltsam zu verwalten sind in C, hab ich damit meine Probleme.

    for (j = 1; j <=Netz[i].inpanz; j++)
    		{
    			 fgets(Daten[i].Operator, 256, InputIni); //Operatoren
    
    		}
    //Hierdrum in noch ne Forschleife für das "i" aber die funktioniert.
    

    Mein Problem ist nun, Wie speichere ich die Zeichen von oben so ab, dass ich "an Stelle 1" das "+" hab, "an Stelle 2" das "-" usw. Ich muss dann nachher wieder mit einer weiteren Forschleife auf die Daten zugreifen können.

    Ich hoffe Ihr versteht mein Problem.

    Vielen Dank für die Hilfe schonmal!!

    Chris



  • es gibt mehrere Möglichkeiten. Bei fgets wird das \n mit eingelesen, das willst du bestimmt nicht. fscanf liest einen String bis zum Ende der Zeile und wirft das \n weg, allerdings können eine Zeile die 256 Zeichen, die in Operator passen, überschreiten.

    fscanf(InputIni, "%s", Daten[j].Operator);
    

    Frage an Alle: erkennt fscanf die Formatsequenz "%256s"?

    eine struct mit nur einem Element macht allerdings wenig sinn 😉



  • Hallo,

    Christiangr schrieb:

    Mein Problem ist nun, Wie speichere ich die Zeichen von oben so ab, dass ich "an Stelle 1" das "+" hab, "an Stelle 2" das "-" usw. Ich muss dann nachher wieder mit einer weiteren Forschleife auf die Daten zugreifen können.

    Ich hoffe Ihr versteht mein Problem.

    Vielen Dank für die Hilfe schonmal!!

    Chris

    wenn die Datei nicht allzu groß ist, kannst du einfach zeichenweise mit getchar einlesen und dann prüfen, ob du das Zeichen speichern möchtest.

    Gruß,
    B.B.



  • Ich würd noch auf feof abfragen, sonst könnt es irgendwann komisch werden.


Log in to reply