Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Fehlerausgabefunktion funktioniert nicht/Endlosschleife

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 < [ 2 ] [ 3 ]
000
06.01.2016, 23:43 Uhr
~JohnDoe
Gast


Hallo, ich bin absoluter Anfänger was programmieren angeht, habe nun für einen Freund ein kleines Programm geschrieben welches soweit funktioniert, allerdings will ich, dass man Zahlen eingibt, aber sobald man etwas anderes eingibt endet das Programm in einer Endlosschleife. In der main Funktion klappt das, aber bei den Cases bzw anderen Funktionen nicht...
Habe es mit if und else nicht hinbekommen, nur ein mal wodurch sich das komplette Programm aber immer beendet hat, was es auch nicht soll. Auch mit switch und case habe ich es nicht geschafft.

Kann mir jemand hier erklären wie man eine Fehlerausgabe bei falscher Eingabe hin bekommt, damit das Programm danach noch ein Mal nach der richtigen Eingabe fragt?

Und ist es möglich, eine Funktion von selbst immer zu wiederholen bis man z.B. bei der Eingabe der Werte dann einen speziellen (z.B. Exit) eingibt, und damit in die main Funktion zurückkommt?


Hier der Quellcode:

Code:


#include <iostream>
#include <limits>
using namespace std;

    double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0,
    Celsius=0.0, Knoten=0.0, kmh=0.0, Meile=0.0, Kilometer=0.0, Yard=0.0;
    double sum=0;
    char eingabe;

int func1()
{    
    cout << "\n************************\nBitte Meter eingeben: ";
    cin >> Meter;
    
    sum = Meter * 3.28084;
    
    cout << Meter;
    cout << " Meter = ";
    cout << sum;
    cout << " Fuss\n************************\n\n\n\n\n\n";
    return 0;

}

int func2()
{
    cout << "\n************************\nBitte Fuss eingeben: ";
    cin >> Fuss;
        
    sum = Fuss * 0.3048;
    
    cout << Fuss;
    cout << " Fuss = ";
    cout << sum;
    cout << " Meter\n************************\n\n\n\n\n\n";
    return 0;
}

int func3()
{
    cout << "\n************************\nBitte Meter eingeben: ";
    cin >> Meter;
    
    sum = Meter * 39.3701;
    
    cout << Meter;
    cout << " Meter = ";
    cout << sum;
    cout << " Inch/Zoll\n************************\n\n\n\n\n\n";
    return 0;
}

int func4()
{
    cout << "\n************************\nBitte Inch/Zoll eingeben: ";
    cin >> Inch;
    
    sum = Inch * 0.025400013716;
    
    cout << Inch;
    cout << " Inch/Zoll = ";
    cout << sum;
    cout << " Meter\n************************\n\n\n\n\n\n";
    return 0;
}

int func5()
{
    cout << "\n************************\nBitte Meile eingeben: ";
    cin >> Meile;
    
    sum = Meile * 1.60934;
    
    cout << Meile;
    cout << " Meile = ";
    cout << sum;
    cout << " Kilometer\n************************\n\n\n\n\n\n";
    return 0;
}

int func6()
{
    cout << "\n************************\nBitte Kilometer eingeben: ";
    cin >> Kilometer;
    
    sum = Kilometer * 0.621371;
    
    cout << Kilometer;
    cout << " Kilometer = ";
    cout << sum;
    cout << " Meile\n************************\n\n\n\n\n\n";
    return 0;
}

int func7()
{
    cout << "\n************************\nBitte Knoten eingeben: ";
    cin >> Knoten;
    
    sum = Knoten * 1.852;
    
    cout << Knoten;
    cout << " Knoten = ";
    cout << sum;
    cout << " Kilometer pro Stunde\n************************\n\n\n\n\n\n";
    return 0;
}

int func8()
{
    cout << "\n************************\nBitte Kilometer pro Stunde eingeben: ";
    cin >> kmh;
    
    sum = kmh * 0.539957;
    
    cout << kmh;
    cout << " Kilometer pro Stunde = ";
    cout << sum;
    cout << " Knoten\n************************\n\n\n\n\n\n";
    return 0;
}

int func9()
{
    cout << "\n************************\nBitte Fahrenheit eingeben: ";
    cin >> Fahrenheit;
    
    sum = (Fahrenheit - 32) /1.8;
    
    cout << Fahrenheit;
    cout << " Grad Fahrenheit = ";
    cout << sum;
    cout << " Grad Celsius\n************************\n\n\n\n\n\n";
    return 0;
}

int func0()
{
    cout << "\n************************\nBitte Celsius eingeben: ";
    cin >> Celsius;
    
    sum = Celsius * 1.8 + 32;
    
    cout << Celsius;
    cout << " Grad Celsius = ";
    cout << sum;
    cout << " Grad Fahrenheit\n************************\n\n\n\n\n\n";
    return 0;
}

int funca()
{
    cout << "\n************************\nBitte Meter eingeben: ";
    cin >> Meter;
    
    sum = Meter * 1.09361329834;
    
    cout << Meter;
    cout << " Meter = ";
    cout << sum;
    cout << " Yard\n************************\n\n\n\n\n\n";
    return 0;
}

int funcb()
{
    cout << "\n************************\nBitte Yard eingeben: ";
    cin >> Yard;
    
    sum = Yard * 0.9144;
    
    cout << Yard;
    cout << " Yard = ";
    cout << sum;
    cout << " Meter\n************************\n\n\n\n\n\n";
    return 0;
}




int main() {
    
    char eingabe;

    cout     << "(q) oder (s) um das Programm zu schliessen.\n";

do
{
    

    cout
    << "\n(1) Meter in Fuss\t\t"
    << "(2) Fuss in Meter\n"
    << "(3) Meter in Inch/Zoll\t\t"
    << "(4) Inch/Zoll in Meter\n"
    << "(5) Meile in Kilometer\t\t"
    << "(6) Kilometer in Meile\n"
    << "(7) Knoten in Km/h\t\t"
    << "(8) Km/h in Knoten\n"
    << "(9) Fahrenheit in Celsius\t"
    << "(0) Celsius in Fahrenheit\n"
    << "(a) Meter in Yard\t\t"
    << "(b) Yard in Meter\n";

cin >> eingabe;
switch(eingabe)

{

case '1':
{
    func1();
    break;
}    

case '2':
    
{
    func2();
    break;
}

case '3':

{
    func3();
    break;
}

case '4':

{
    func4();
    break;
}

case '5':

{
    func5();
    break;
}

case '6':

{
    func6();
    break;
}

case '7':

{
    func7();
    break;
}

case '8':

{
    func8();
    break;
}

case '9':

{
    func9();
    break;
}


case '0':

{
    func0();
    break;
}

case 'a':

{
    funca();
    break;
}

case 'b':

{
    funcb();
    break;
}






case 's':  return 0;
break;

case 'q': return 0;
break;

default:    cout << "Ungueltige Eingabe!\n";

}

}
while(eingabe);


return 0;
}




 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.01.2016, 09:32 Uhr
~f.-th.
Gast


Immer versuchen den lauffähigen Quellcode auf das Problem zu beschränken.
Hier ein paar Kommentare im Quelltext.


C++:
#include <iostream>
#include <limits>    // den richtigen Header hast du schon. gut
using namespace std;

double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0, // globale Variable => in c++ eine schlechte Idee
       Celsius=0.0, Knoten=0.0, kmh=0.0, Meile=0.0, Kilometer=0.0, Yard=0.0;
double sum=0;  // Nur begrifflich sind das Summen???
char eingabe;  // hier negativ und unter(gut) noch mal???

int func1()  // func 1 bis 'z' da gibt es doch bessere Namen hier :) : meterzufuss()?
{
    cout << "\n************************\nBitte Meter eingeben: ";
    cin >> Meter;

    sum = Meter * 3.28084;

    cout << Meter;
    cout << " Meter = ";
    cout << sum;
    cout << " Fuss\n************************\n\n\n\n\n\n";
    return 0;

}

int func2()
{
    cout << "\n************************\nBitte Fuss eingeben: ";
    cin >> Fuss;

    sum = Fuss * 0.3048;

    cout << Fuss;
    cout << " Fuss = ";
    cout << sum;
    cout << " Meter\n************************\n\n\n\n\n\n";
    return 0;
}

// u.s.w.




int main()
{

    char eingabe;

    cout     << "(q) oder (s) um das Programm zu schliessen.\n";

    do
    {
        cout
                << "\n(1) Meter in Fuss\t\t"
                << "(2) Fuss in Meter\n"

        cin >> eingabe;
        switch(eingabe)
        {
        case '1':
            func1();
            break;

        case '2':
            func2();
            break;







        case 's':
            return 0;
            break;

        case 'q':
            return 0;
            break;

        default:
            cout << "Ungueltige Eingabe!\n";

        }

    }
    while(eingabe);  // wann wird eingabe == 0???


    return 0;
}




Hier 2 Varianten => bei der 2. Eingabe-Prüfung ergänzen.

C++:
int meter2fuss()
{
    double Meter=0.0, Fuss=0.0;

    cout << "\n************************\nBitte Meter eingeben: ";
    while(!(cin >> Meter))
    {
        // Fehler...
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << "Nur Zahlen eingeben:";
    }

    cout << Meter;
    cout << " Meter = ";
    cout << Meter * 3.28084;
    cout << " Fuss\n************************\n\n\n\n\n\n";
    return 0;

}

int fuss2meter()
{
    double Meter=0.0, Fuss=0.0;

    cout << "\n************************\nBitte Fuss eingeben: ";
    cin >> Fuss;

    double sum = Fuss * 0.3048;

    cout << Fuss;
    cout << " Fuss = ";
    cout << sum;
    cout << " Meter\n************************\n\n\n\n\n\n";
    return 0;
}




Ist noch nicht ganz rund, aber ihr sollt ja auch noch etwas investieren.

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.01.2016, 18:58 Uhr
ao

(Operator)


Und ich denke, es wäre noch besser, wenn diese ganzen Funktionen nur die Umrechnung machen würden und nicht den cin- und cout-Kram. Das gehört eigentlich in die main-Funktion oder in eine separate Ein- bzw. Ausgabe-Routine.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.01.2016, 22:12 Uhr
~f.-th.
Gast


Schwebt dir da etwa so etwas vor?


C++:
double datain()
{
    double data = 0.0;
    while(!(cin >> data))
    {
        // Fehler...
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << "Nur Zahlen eingeben:";
    }
    return data;
}

int wandle(string quell, double multi, string ziel)
{
    cout << "\n************************\nBitte " << quell << "eingeben: ";
    double datad = datain();
    cout << datad;
    cout << " " << quell << " = ";
    cout << datad * multi;
    cout << " " << ziel << "\n************************\n\n\n\n\n\n";
    return 0;
}



Hier dann ein Aufruf der Funktion:


C++:
            wandle("Meter", 3.28084, "Fuss");
// u.s.w.



MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.01.2016, 22:46 Uhr
JohnDoe



Danke für eure schnellen Antworten, habe es nun alles ein bisschen umgeschrieben, das mit der Fehlerausgabe klappt auch ganz gut


C++:
    while(!(cin >> Meter))
    {
        // Fehler...
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << "Nur Zahlen eingeben:";
    }



sum war als eine art Ergebnis gedacht, aber habe nun selbst gemerkt das es auch ohne geht, char eingabe war nur falsch kopiert da ich kurz davor das Programm umgeschrieben habe um die Funktionen zu nutzen.


C++:
    while(eingabe);  // wann wird eingabe == 0???



bin wie gesagt absoluter Anfänger... warum muss die eingabe 0 sein? hab doch bei den case auch default genutzt oder ist das falsch?


C++:
double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0, // globale Variable => in c++ eine schlechte Idee



was daran ist eine schlechte Idee? Die Deklaration vor allen Funktionen schlecht und sie lieber einzelln in den Funktionen einfügen?

Die zweite Nachricht von dir hab ich absolut keinen Plan was das ist, soweit bin ich noch nicht sry.. aber danke für eure Mühe


So sieht es aktuell aus:

C++:
#include <iostream>
#include <limits>
using namespace std;

    double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0,
    Celsius=0.0, Knoten=0.0, kmh=0.0, Meile=0.0, Kilometer=0.0, Yard=0.0;

int func1()
{    
    cout << "\n************************\nBitte Meter eingeben: ";
    
while(!(cin >> Meter))
    {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << "Bitte nur Zahlen eingeben: ";
    }    
    
    
    cout << Meter << " Meter = " << Meter * 3.28084;
    cout << " Fuss\n************************\n\n";
    return 0;

}



int func2()
{
    cout << "\n************************\nBitte Fuss eingeben: ";

while(!(cin >> Fuss))
    {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << "Bitte nur Zahlen eingeben: ";
    }    
    
    cout << Fuss << " Fuss = " << Fuss * 0.3048;
    cout << " Meter\n************************\n\n";
    return 0;
}

/* Funktionen 3-12 */

int funcm()
{
    cout
    << "\n(q) oder (s) um das Programm zu schliessen.\n"
    << "\n(1) Meter in Fuss\t\t"    << "(2) Fuss in Meter\n"
    << "(3) Meter in Inch/Zoll\t\t"    << "(4) Inch/Zoll in Meter\n"
    << "(5) Meile in Kilometer\t\t"    << "(6) Kilometer in Meile\n"
    << "(7) Knoten in Km/h\t\t"        << "(8) Km/h in Knoten\n"
    << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n"
    << "(a) Meter in Yard\t\t"        << "(b) Yard in Meter\n\n";        
    
}



int main() {
    
    char eingabe;

    cout << "(q) oder (s) um das Programm zu schliessen.\n"
    << "(m) Um das Menue erneut anzuzeigen\n\n"
    
    << "\n(1) Meter in Fuss\t\t"    << "(2) Fuss in Meter\n"
    << "(3) Meter in Inch/Zoll\t\t"    << "(4) Inch/Zoll in Meter\n"
    << "(5) Meile in Kilometer\t\t"    << "(6) Kilometer in Meile\n"
    << "(7) Knoten in Km/h\t\t"        << "(8) Km/h in Knoten\n"
    << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n"
    << "(a) Meter in Yard\t\t"        << "(b) Yard in Meter\n\n";

do
{
    cout << "Ihre Auswahl: ";
    cin >> eingabe;
    switch(eingabe)

{

case '1':
{
    func1();
    break;
}    

case '2':
    
{
    func2();
    break;
}

/* case 3-12 */

case 'm':
{
    funcm();
    break;    
}



case 's':  return 0;
break;

case 'q': return 0;
break;

default:    cout << "Ungueltige Eingabe!\n";

}

}
while(eingabe);


return 0;
}



Dieser Post wurde am 07.01.2016 um 22:49 Uhr von JohnDoe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.01.2016, 23:33 Uhr
ao

(Operator)



Zitat von ~f.-th.:
Schwebt dir da etwa so etwas vor?

Zum Beispiel. Wobei man damit die Celsius-Fahrenheit-Umrechnung nicht erschlagen kriegt, also wenn schon denn schon:

void wandle (const string & quellEinheit, const string & zielEinheit, double factor, double offset);

und in der Rechnung dann

zielWert = factor * quellWert + offset;

Wenn man will, kann man für factor und offset Defaultargumente (1.0 bzw. 0.0) vorsehen, muss man aber nicht.


Oder eine UnitConverter-Klasse definieren:

C++:
class UnitConverter
{
    double factor;
    double offset;
public:
    UnitConverter (double factor = 1, double offset = 0) : factor (factor), offset (offset) {}

    double Convert (double x) const { return factor * x + offset; }
};



Ich bin übrigens dafür, dass man die Formatierung der Ein- und Ausgabe von der eigentlichen Konvertierung trennt. Das eine hat nämlich mit dem anderen nichts zu tun.

Dieser Post wurde am 07.01.2016 um 23:33 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.01.2016, 09:31 Uhr
~f.-th.
Gast



Zitat von JohnDoe:


bin wie gesagt absoluter Anfänger... warum muss die eingabe 0 sein? hab doch bei den case auch default genutzt oder ist das falsch?


Wenn eingabe != 0 hast du ja prinzipiell eine Endlosschleife. Da kommt man auch heraus. Aber, wenn nichts wichtiges dagegen spricht bevorzuge ich da einen Ausstiegswert. Das wäre hier z.B. 0



Zitat von JohnDoe:


C++:
double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0, // globale Variable => in c++ eine schlechte Idee



was daran ist eine schlechte Idee? Die Deklaration vor allen Funktionen schlecht und sie lieber einzeln in den Funktionen einfügen?


Globale Variable sollte man meiden - bei umfangreichen C++ Quelltexten verliert man sonst den Überblick. Suche mal im Netz oder in deinen Unterlagen nach weiter Infos zu "globalen Variablen". Also besser in den Funktionen, wo sie benötigt werden, die Variablen einfügen. C++ erlaubt es Variable direkt vor oder während der ersten Nutzung zu beschreiben.




Zitat von JohnDoe:

Die zweite Nachricht von dir hab ich absolut keinen Plan was das ist, soweit bin ich noch nicht sry.. aber danke für eure Mühe



Die beiden Funktionen modifiziert wie ao beschrieben ersetzen all deine Funktionen. Die Redundanzen fallen weg. Der Quelltext wird kürzer. Wie du die Funktionen nach z.B. einem case aufrufen kannst hatte ich ja geschrieben.


Und wie man es c++ like mit Klassen umsetzen kann hat ao auch noch angedeutet.

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.01.2016, 11:40 Uhr
JohnDoe



An sich soll das Programm ja in einer Endlosschleife laufen, bis man es mit (s) oder (q) beendet (return 0). Soll ich dann lieber
C++:
while (eingabe == 0);
return 0;

nutzen?
Das mit der globalen Variable hab ich nun verstanden danke dir, das von ao hab ich allerdings noch nicht verstanden aber denke wenn ich mal weiter bin werd ich es auch noch verstehen.. reines kopieren nützt mir ja nicht viel^^

Dieser Post wurde am 08.01.2016 um 11:41 Uhr von JohnDoe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.01.2016, 04:16 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat:

An sich soll das Programm ja in einer Endlosschleife laufen, bis man es mit (s) oder (q) beendet (return 0). Soll ich dann lieber

C++:
while (eingabe == 0);
return 0;


nutzen?


das musst Du selbst entscheiden, denn es funktioniert beides. In diesem Fall ist es eine Geschmacksfrage, ob man while (eingabe == 0); oder while (eingabe == 'q'); schreibt.

Ach ja und zum Vergleich der Übersichtlichkeit von Quelltext hab ich Deinen mal neu formatiert; - bzw. von einem Programm neu formatieren lassen. Das Ergebnis sieht so aus:

C++:
#include <iostream>
#include <limits>

using namespace std;

double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0,
       Celsius=0.0, Knoten=0.0, kmh=0.0, Meile=0.0, Kilometer=0.0, Yard=0.0;

int func1()
{
    cout << "\n************************\nBitte Meter eingeben: ";

    while(!(cin >> Meter))
        {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(),'\n');
            cout << "Bitte nur Zahlen eingeben: ";
        }


    cout << Meter << " Meter = " << Meter * 3.28084;
    cout << " Fuss\n************************\n\n";
    return 0;

}



int func2()
{
    cout << "\n************************\nBitte Fuss eingeben: ";

    while(!(cin >> Fuss))
        {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(),'\n');
            cout << "Bitte nur Zahlen eingeben: ";
        }

    cout << Fuss << " Fuss = " << Fuss * 0.3048;
    cout << " Meter\n************************\n\n";
    return 0;
}

/* Funktionen 3-12 */

int funcm()
{
    cout
            << "\n(q) oder (s) um das Programm zu schliessen.\n"
            << "\n(1) Meter in Fuss\t\t"    << "(2) Fuss in Meter\n"
            << "(3) Meter in Inch/Zoll\t\t"    << "(4) Inch/Zoll in Meter\n"
            << "(5) Meile in Kilometer\t\t"    << "(6) Kilometer in Meile\n"
            << "(7) Knoten in Km/h\t\t"        << "(8) Km/h in Knoten\n"
            << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n"
            << "(a) Meter in Yard\t\t"        << "(b) Yard in Meter\n\n";

}



int main()
{

    char eingabe;

    cout << "(q) oder (s) um das Programm zu schliessen.\n"
         << "(m) Um das Menue erneut anzuzeigen\n\n"

         << "\n(1) Meter in Fuss\t\t"    << "(2) Fuss in Meter\n"
         << "(3) Meter in Inch/Zoll\t\t"    << "(4) Inch/Zoll in Meter\n"
         << "(5) Meile in Kilometer\t\t"    << "(6) Kilometer in Meile\n"
         << "(7) Knoten in Km/h\t\t"        << "(8) Km/h in Knoten\n"
         << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n"
         << "(a) Meter in Yard\t\t"        << "(b) Yard in Meter\n\n";

    do
        {
            cout << "Ihre Auswahl: ";
            cin >> eingabe;
            switch(eingabe)

                {

                case '1':
                {
                    func1();
                    break;
                }

                case '2':

                {
                    func2();
                    break;
                }

                /* case 3-12 */

                case 'm':
                {
                    funcm();
                    break;
                }



                case 's':
                    return 0;
                    break;

                case 'q':
                    return 0;
                    break;

                default:
                    cout << "Ungueltige Eingabe!\n";

                }

        }
    while(eingabe);


    return 0;
}


Darin sieht man die Einbettung der switch-Konstruktion innerhalb der do-Schleife schneller, weil sie durch die Einrückung gleich hervor tritt.
--
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
009
10.01.2016, 01:03 Uhr
JohnDoe



Danke für eure Hilfe und Tipps, habt mir sehr weitergeholfen, das mit den Arrays und Klassen lern ich demnächst noch (hab das Buch 'C++ Grundkurs von Rheinwerk Computing').
Das Programm läuft nun soweit wie ich es auch wollte
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (WinAPI, Konsole) ]  


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: