C++ Rekursive Schleife Fehler



  • Moin!

    Ich schreibe nebenbei an meinem PC einige kleinere Programme (aus Hobbygründen).
    Bei dem unten angegebenen Code soll auf dem Bildschrim und in eine txt Datei eine generierte Teichenfolge angezeigt bzw geschriebene werden.

    Bloß wird nach dem ersten Buchstabendurchlauf (nach dem "Z") nur eine "0" anzeigt,satt "00".

    Wo liegt der Fehler in dem Code?

    #include <iostream>
    #include <fstream>
    #include <cstring>
    
    using namespace std;
    
    ofstream dat_aus;
    
    string dateiname2="datei.txt";
    
    int loop;
    int loop2;
    int a;
    int b;
    int c;
    int d;
    int e;
    int f;
    int g;
    
    // "\0" im in der variable "array" soll als leeres "Zeichen" bzw einfach nur leer sein
    
    string array[63] = {"\0","0","1","2","3","4","5","6","7","8",
    					"9","a","b","c","d","e","f","g","h","i",
    					"j","k","l","m","n","o","p","q","r","s",
    					"t","u","v","w","x","y","z","A","B","C",
    					"D","E","F","G","H","I","J","K","L","M",
    					"N","O","P","Q","R","S","T","U","V","W",
    					"X","Y","Z"};
    
    int func_generate() {
    
    	dat_aus.open(dateiname2.c_str(), ios_base::out);
    
      	if(!dat_aus) {
    
         	cout << "Datei konnte nicht geoeffnet werden!";
         	cout << endl;
         	return -1;
    
      	}
    
    	else {
    
    		for(loop2=0;loop2<6;loop2++) {
    
    			loop2=0;
    
    			for(a=0;a<63;a++) {
    
    				// Hier wird nach dem "Z" nur eine "0" statt "00" angezeigt
    
    				cout << array[g]<< array[f]  << array[e] << array[d] << array[c] << array[b] << array[a] << endl;
    				dat_aus << array[g]<< array[f]  << array[e] << array[d] << array[c] << array[b] << array[a] << endl;
    
    			}  // for(loop=0;loop<63;loop++) {
    
    			b++;
    
    			if(b==62) {
    
    				b=1;
    				c++;;
    			}
    
    			if(c==63) {
    
    				c=1;
    				d++;
    
    			}
    
    			if(d==63) {
    
    				d=1;
    				e++;
    
    			}
    
    			if(e==63) {
    
    				e=1;
    				f++;
    
    			}
    
    			if(f==63) {
    
    				f=1;
    				g++;
    
    			}
    
    			if(g==63) {
    
    				loop=12;
    
    			}  // if(g==63) 
    
    		}  // for(loop2=0;loop<6;loop++) {
    
    	} // else {
    
    }  // int func_generate() {
    

    Danke



  • user1401 schrieb:

    for(loop2=0;loop2<6;loop2++) 
    {
        loop2=0;
        ...
    }
    

    Das oben zitierte Codestück ist erstmal sehr unüblich und müsste aus meiner Sicht sogar eine Endlosschleife ergeben. Falls das dein Ziel war: Endlosschleifen macht man anders 😉

    Der Threadtitel spricht von "Rekursion". Ich sehe hier irgendwie keine...

    Der Quellcode macht den Eindruck, als würde es Sinn machen, uns in den Sinn des Programmes einzuweihen, damit wir dir vielleicht allgemein helfen können, auch deinen Stil zu verbessern.


Anmelden zum Antworten