Schleife bis zum Sonderzeichen



  • Also, Ich hab gestern mal angefangen ein grosses Projekt aufgebaut 🙂
    Nur leider hangelt es an dieser Stelle..

    Also, er laeuft fast perfekt, nur leider bin ich fuer diese Funktion zu unfaehig 🙂

    Ab der Stelle 61, wo ich denn Cursor mit fseek hingestellt habe, soll er mir als Variable das Wort das in der Zeile steht zurueckgeben... (Es ist bei jedem ein anderes Wort... / also verschiedenlang)

    Die zeile keonnte so aussehen:
    asd" oder 123456" oder test"

    ich moechte das er mir die werte asd, 123456 oder test vermittelt, bzw. bei denn Anfuehrungszeichen stoppt...

    Danke in Vorraus !

    Code:

    FILE *datei;
    int anzahl;
    
    datei = fopen ("C:/meinedatei.txt", "r");
    if (datei != NULL) {
          fseek(datei, 61, SEEK_SET);
    
    >>>
    
          fclose (datei);
         } else {
               exit(0);
               }
    

    Damit gibt er mir ja alles aus 😞
    [/code]while((acc=getc(datei)) != EOF) {
    putc(acc,stdout);
    }[/code]



  • Du bist doch schon auf dem richtigen Weg - jetzt mußt du die Eingabezeichen nur noch mit deiner Endemarke vergleichen 😉

    while((acc=getc(datei)) != EOF /*hier:*/ && acc!=ende) { 
    putc(acc,stdout); 
    }
    


  • Ich danke Ihnen, nur leider moechte es nicht wie ich es moechte 🙂

    while((acc=getc(datei)) != EOF /*hier:*/ && acc!="\"") {
          putc(acc,stdout); 
          }
    

    beim Code gibt er mir alles bis zum schluss aus 😞

    oder habe ich "wieder" was falscch gemacht 😃



  • Du mußt das Ende-Zeichen auch als char-Literal ( '\"' ) angeben und nicht als String-Literal.



  • Klappt Super, Ich danke Ihnen vielmals 🙂



  • Soll ich die Warnings ignorieren?:

    [Warning] assignment makes pointer from integer without a cast
    [Warning] comparison between pointer and integer

    Diese beiden Warnings gehen auf diese Yeile zurück:

    while((acc=getc(datei)) != EOF && acc!=('\"')) {
    putc(acc,stdout);
    }
    


  • Was für einen Typ hat denn 'acc'? (normalerweise sollte das ein einfacher int sein, aber die beiden Warnungen deuten auf einen Zeiger)


Anmelden zum Antworten