for-Schleife



  • Hallo zusammen,

    ich versuche in eine for-Schleife eine vernünfitge Abbruchbedingung einzufügen, das ganze sieht zur Zeit so aus:

    for(datei.getline(inhalt,1500); !datei.eof();datei.getline(inhalt,1500))

    Es folgt dann ein switch der verschiedene Bedingungen untersucht. Der switch funktioniert auch, die for-Schleife jedoch nicht. Könnte !datei.eof () das Problem sein? Der Ounktoperator zeigt mir das auch nicht als Auswahlmöglichkeit an. Kann das daran liegen dass das ein MFC Projekt ist?

    Gruß,
    Luja



  • Wenn Du ein MFC-Projekt verwendest, dann kannst Du auch die MFC-Klassen CFile oder CStdioFile benutzen.



  • Eine while Schleife wäre besser.
    ußerdem schließe ich mich Airdamn an.



  • Wie würde ich denn dann die angegebene for-Schleife ersetzen? Irgendwelche Vorschläge? Von MFC habe ich leider nicht viel Ahnung, ist so eine Aufgabe für Schule. 😮

    Gruß,
    Luja



  • while(!datei.eof())
    {
       //mach was solange die datei !datei.eof() ist
    }
    

    😉
    mfg
    LowFly



  • Danke. So ähnlich hatte ich es mir auch gedacht. Leider kommt dann immer folgender Fehler:

    fatal error LNK1201: Fehler beim Schreiben in die Programmdatenbank 'c:\Dokumente und Einstellungen\Desktop\aufgabe4\Debug\aufgabe.pdb'. Überprüfen Sie auf ausreichenden Arbeitsspeicher, ungültigen Pfad oder nicht ausreichende Zugriffsrechte

    Da die Schleife das Einzige ist, an dem ich was geändert habe, kann es doch eigentlich nur daran liegen, oder?



  • ka woher der fehler kommt!!
    ich weis ja net was du vorher machst.
    hab ja nur auf deine frage geantwortet wie du die for schleife in eine while schleife abänderst.

    kannst es ja auch mal mit CStdioFile versuchen. sollte dann aber fehlerfrei klappen es sei denn du hast vorher schon nen wurm reingebracht

    CStdioFile *file = new CStdioFile(); 
    CFileStatus rStatus; 
    char *pBuf; 
    
    if( file->Open( lpstrFileTitle, CFile::modeRead | CFile::typeBinary ) )//Öffnet eine datei 
        { 
            file->GetStatus(rStatus);//Zustand der datei 
    
            pBuf = new char [rStatus.m_size+1];//buffer auf größe der datei erweitern 
    
            file->Read(pBuf,rStatus.m_size);//datei einlesne 
    
            file->Close();//Schließe datei 
    
        }
    

    [NEW EDIT]
    du könntest auch einfach bei erfüllung einer bedingung nen break; in die for schleife setzen.

    mfg
    LowFly



  • Luja schrieb:

    Von MFC habe ich leider nicht viel Ahnung, ist so eine Aufgabe für Schule. 😮

    Gruß,
    Luja

    Was lernst du denn in der Schule?
    Wenn es nicht MFC ist, solltest du die auch nicht verwenden und dann würde ich den Thread mal verschieben. 😉



  • Das ist schon MFC, also danke.
    Werde ich mal ausprobieren!


Anmelden zum Antworten