Eingabefeld / Fenster



  • Hallo....
    Also ich bin der Matys 🙂 bin ein noob in sachen c++ und ja hab grad meien ausbildung angefangen.....

    nun sollen wir ein prog machen ein witz eigentlich ein prog das das alter in monaten und tagen ausgibt alles schön und gut und easy.

    Nun wollt ich das das stadt das alter normal einzutippen dies halt in so nem fenster machen, halt ein eingabe feld wo man das dann halt rein tippt..

    bsp.: Geben sie bitte Ihr Alter dort ein.:
    --------
    | |
    --------

    ja sowas ungefähr halt ein EINGABEFENSTER balken line wie auch immer...

    ein freund mainte ohh ohh viel arbeit nun ja ok cool egal arbeit ist ok so lern ich auch..

    ich hab keine c++ bücher hab garnix auser nem editor...

    wie kann ich jetzt sowas erschtellen ????

    Im voraus schonmal DANKE SCHÖN und ja frfeue mich "dabei" zur sein

    Greets Matys



  • Standard C++ kennt keine Fenster und ein Anfänger sollte glücklich sein wenn er halbwegs Standard C++ kapiert, lerne lieber mal die Grundlagen anstatt irgend was mit Fenstern machen zu wollen.

    Wenn du willst kann ich den Thread in das passende Forum verschieben (Unix oder Win?).

    Wohin mit meiner Frage?



  • so sieht es zur zeit aus.

    // Schule.cpp : Defines the entry point for the console application.
    //

    #include <iostream.h>

    void main()

    {

    int alter;
    int UFmonat = 12;
    int UFtag = 365;
    int altermonat;
    int altertag;

    cout<<" "<<endl;
    cout<<" |||"<<endl;
    cout<<" |||||||"<<endl;
    cout<<" |||||||||||"<<endl;
    cout<<" |||||||||||||||"<<endl;
    cout<<" ||||||-2002-|||||||"<<endl;
    cout<<" |||||||||||||||||||||||"<<endl;
    cout<<" |||||||||||||||||||||||||||"<<endl;
    cout<<" ||||||-Alter Berechnung-|||||||"<<endl;
    cout<<"
    ||-Tragen Sie Hier Ihr Alter Ein-||*"<<endl;

    cin>>alter; //Ich Kann Die Alters Ausgabe Nicht In Diese Klammern Sätzen und shcon garnicht ein EINGABEFELD zu machen ???//

    cout<<"|| ||"<<endl;

    altermonat = alter * UFmonat;

    altertag = alter * UFtag;

    cout<<"||-Ihr Alter: ["<<altermonat<<"] In Monaten-||"<<endl;

    cout<<"|| ||"<<endl;

    cout<<"||-Ihr Alter: ["<<altertag<<"] In Tagen-||"<<endl;

    cout<<"|||||||||||||||||||||||||||||||||||"<<endl;
    cout<<" |||||||--------|-------|||||||"<<endl;
    cout<<" |||||||||||-------|||||||||"<<endl;
    cout<<" |||||||||||||||||||||||"<<endl;
    cout<<" |||||||||||||||||||"<<endl;
    cout<<" |||||||||||||||"<<endl;
    cout<<" |||||||||||"<<endl;
    cout<<" |||||||"<<endl;
    cout<<" |||"<<endl;
    cout<<" *"<<endl;

    }

    Das Alter Soll In Einem Eingabefeld zur eintippen sein und soll auch in soeiname fenster ausgegäben werden...

    sobald ich weiss wies geht wird das ganze anders gemacht *g*

    Gruss Matys



  • Ahso, Standard C++ kennt kein gotoxy
    Aber das könnte hier weiter helfen.
    DOS und Win32-Konsole



  • @Dimah: Nicht gleich so hart, ein Fenster aus Ascii-Zeichen lässt sich sogar mit Std-C++ machen (nur dumm das man halt nix eingeben kann, da man nicht mehr zurück kommt).

    Für gotoxy() findet sich für den MSVC was in der FAQ. Fast alle anderen Compiler bieten in der <conio.h> ein gotoxy().

    MfG SideWinder



  • Ale beide haben mir leider nicht weiter geholfen trotzdem danke fur die idean ....und nun weiter zur einer frage wei kann ich solch ein eingabe fenster machen ????

    Villeicht hat das schon einer fertig ?

    ich weiss auch nciht wie ich es einfugen sollte aus nem fertigen projeckt ?

    wie gesagt bin ein nooby 😞 ..

    mfg Matys



  • eigentlich ist es recht leicht. **vorausgesetzt du willst es für die windows konsole.

    für die schule habe ich mal eine facharbeit über das Thema "Chatten im Netzwerk" geschrieben. Dieses Programm läuft in der Windows Konsole und hat ein aus ASCII-Zeichen aufgebautes "Fenstersystem". funktioniert auch wunderbar. im moment bin ich dabei (auch ich programmiere stümperhaft ;)) dieses Fenstersystem (ich nenns ScreenX) neu zu schreiben.

    wenn du willst kann ich dir mal meine Facharbeit schicken.

    ansonsten: einfach drüber nachdenken. ist gar nicht so schwer sowas zu bauen.

    so solls doch aussehen (vereinfacht):

    ======================
    = Eingabemöglichkeit =

    die = durch die Rahmenzeichen ersetzen, Position bestimmen, wo es hin soll, und dann Position auf die Eingabemöglichkeit setzen. danach nur noch zeichenweise einlesen (damit der user das fenster nicht überschreiben kann) und dann fertig :)**



  • clrscr;
    
    //       012345678901234
    cout << "===============" << endl; // 0
    cout << "=             =" << endl; // 1
    cout << "===============" << endl; // 2
    
    gotoxy ( 1 , 1 );
    getline ( cin , myString );
    

    MfG SideWinder



  • liest getline bis zum return oder nur solange, wie auch zeichen in den string passen?

    man muss ja aufpassen dass man net über das letzte = in der 2.zeile schreibt 😉



  • getline liest bis zu einem Return. Da aber myString vom Typ std::string sein muss, und daher nicht begrenzt ist (außer mit der max. Anzahl an Zeichen...) ist das egal!

    MfG SideWinder



  • Oh, sorry, da hab ich was falsch verstanden...dachte du meinst "nicht über die Bereichsgrenze eines Arrays hinausschreiben", derweil meintest du eigentlich das vom User gezeichnete Fenster.

    Nein, auf das passt er nicht auf. Kann man aber selbst machen:

    // Übergeben wird die Länge des Fensters, der Cursor muss schon an der ersten Position des Eingabefelds stehen:
    
    #include <string>
    #include <conio.h>
    using namespace std;
    
    std::string input_in_a_field ( unsigned short int Laenge )
    {
        std::string Eingabe;
    
        while ( Laenge-- )
        {
            Eingabe += getch ();
        }
    
        return ( Eingabe );
    }
    

    MfG SideWinder


Anmelden zum Antworten