Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » verschachtelte schleifen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.03.2006, 14:43 Uhr
~Manfred75
Gast


Hallo zusammen.

Ich habe eine while-schleife, in der Funktionen aufgerufen werden, die wiederrum schleifen enthalten. Beim ersten durchlauf der while schleife funktioniert alles wie es sollte (datei öffnen, lesen, text ausgeben, datei schließen) beim zweiten durchlauf allerdings funktioniert zwar noch der Aufruf der Funktionen und auch die Schleifen werden scheinbar in Angriff genommen, doch die Anweisungen in den Schleifen werden nicht mehr ausgeführt.
Habt ihr eine Idee woran das liegen könnte?

MFG,
Manfred
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.03.2006, 15:02 Uhr
Hans
Library Walker
(Operator)


Hi,

ohne zumindest den wichtigsten Code zu sehen, können wir Dir auch nicht weiter helfen. Ansonsten: Hast Du das Programm schon mal mit einem Debugger untersucht?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.03.2006, 15:57 Uhr
ao

(Operator)


Gibts irgendwelche globalen oder Membervariablen, die zur Schleifensteuerung verwendet werden und die vom ersten zum zweiten Aufruf ihren Wert behalten?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2006, 14:54 Uhr
~Manfred75
Gast


Okay, hier mal das Problem mit codeteilen.


C++:
//Dieser switch funktioniert vermutlich richtig, die aufgerufene Funktion(schleife)
//funktioniert jedoch nur beim ersten durchlauf

switch (auswahl)
{
case '*':
aktiv = 0;  
return 1;          
break;

case 'N':
     datei.open("daten.txt");
     schleife(datei);
     datei.close();
     break;

//Aufgerufen wird dann diese Funktion:

int schleife (ifstream& datei)
{
Cfall fall;  
enum zustand zustand;
int zaehler=0, onummer=0;
char zeichen,puffer[100],antwort[50];
char pname[100], *vergleich;
cout<<"Frage"<<endl;
cin>>antwort;

for (;;)
    {

    datei.get(zeichen);
    if (datei.eof())
    {
    return onummer;
    break;
    }
    zustand=eNummer;
    switch(zeichen)
       {
    case '"':
       if (zustand==eNummer)
       {
       puffer[zaehler]='\0';    
       zaehler=0;
       fall.nummer=atoi(puffer);
       zustand=imN;
       }

       if (zustand!=eNummer)
    {      
       zustand=xml;
    }
      
       break;
    case '(':
          puffer[zaehler]='\0';
          zaehler=0;
          strcpy(fall.name,puffer);
                    vergleich=strstr(fall.name, antwort);
                    if (vergleich==NULL)
                    {
                    continue;
                    }
                    else
                    cout<<fall.nummer<<endl;                
          zustand=inId;
       break;
    case ')':
          puffer[zaehler]='\0';
          zaehler=0;
          strcpy(fall.id,puffer);

          zustand=xml;
       break;
      
   case '\n':
       zustand=eNummer;
       break;
    
    default:
       puffer[zaehler]=zeichen;
       zaehler++;
       break;    

       }

    }

}



Die Anweisungen scheinen beim zweiten mal nicht ausgeführt zu werden, sie scheint aber aufgerufen zu werden (habe zum Test nach if (datei.eof) ein cout<<"test" reingebaut, welches auch ausgegeben wurde.)

Hoffentlich könnt ihr mir da helfen.

Gruß,
Manfred


Bearbeitung von windalf:

Bitte Codetags verwenden


Dieser Post wurde am 24.03.2006 um 14:58 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.03.2006, 14:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


1)Was soll das ganze tun und wo genau ist das Problem?
2) Guck dir mal std::string an statt da wild c und c++ durcheinander zu werfen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: