C++ einzelne Zeichen löschen, fortlaufende Zahl

Dieses Thema im Forum "C/C++" wurde erstellt von toor, 29.03.2007.

  1. toor

    toor Jungspund

    Dabei seit:
    23.11.2006
    Beiträge:
    17
    Zustimmungen:
    0
    Hiallo liebe Unixboard-Benutzer,
    Ich hab ein kleines Problem, ich würde gerne, so wie es oft bei Konsolen Programmen ist, eine Art fortlaufende Zahl programmieren. Nur leider weiß ich nicht wie die voherige Zahl löschen kann.
    Man könnte es natürlich einfach mit system("clear") ( für Windows-System("cls") ) machen, aber dabei flackert das Bild, was auf die dauer nicht schön ist.

    Als Beispiel wie es mit "System("clear") oder System("cls")" aussehen sollte:
    Code:
    int i=10;
    while (i>0)
    {
    cout<<"text";
    cout<<i;
    cout<<"text";
    --i;
    system("clear");
    }
    
    Bei diesem Beispiel geht es noch mit dem flackern, aber wenn die Zahl zwischen langen Texten zum Beispiel steht, sieth das sehr unschön aus.

    Mit freundlichen Grüßen toor
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Was Du machen willst, ist hardware abhaengig und daher kein Standard-C. Das beste waere, Du wuerdest eine Library wie ncurses benutzen.
    Als Abhilfe koenntest Du Dir auch den Effekt der Ausgabe
    Code:
    std::cout << "\r";
    
    ansehen. Es loescht die zuletzt geschriebene Zeile, zumindest im Terminal. Bei einer Umleitung in eine Datei funktioniert das nicht.

    Es mag auch ASCII-Code geben, der einzelne Zeichen loescht, weiss ich allerdings nicht auswendig.
     
  4. #3 root1992, 30.03.2007
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Jo ncurses könnte dir helfen guck mal bei wikipedia da gibts ein wikibook, da ist eigentlich viel wichtiges drinnen. Und sollte dir weiterhelfen.
     
  5. x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    Naja, es ist nicht mal C... ;)
    aba ncurses ist ein feiner tip

    siehe int mvdelch()
    http://www.die.net/doc/linux/man/man3/mvdelch.3.html

    MfG
     
  6. #5 toor, 04.04.2007
    Zuletzt bearbeitet: 04.04.2007
    toor

    toor Jungspund

    Dabei seit:
    23.11.2006
    Beiträge:
    17
    Zustimmungen:
    0
    Vielen Dank für eure Antworten,
    Ich bin leider noch nicht soweit das ich mit allen Antworten etwas anfangen kann, aber für andere die nach dem Thema suchen, sind dass gut Informationen.
    Für mich war die Antwort von Ricola besonders interessant, denn mit "\r" klappt das so wie ich mir das vorgestellt habe. Darüber hinaus hab bin ich noch "\b" auf was eine ähnlich Funktion hat.
    Vielen Dank für eure Hilfe.

    Zusammenfassung:

    Mögliche Lösungen:

    int mvdelch()
    http://www.die.net/doc/linux/man/man3/mvdelch.3.html

    Eine Library wie ncurses benutzen.

    Für einfache Consolen Fenster:

    Zum an den Anfang der Zeile springen:
    Code:
    cout<<"\r";
    Zum ein Zeichen zurück springen:
    Code:
    cout<<"\b";
    Beispiel Programm:
    Code:
    int a=0; 
        
        while (a<4)
        {
              cout<<"\n12345";
              a++;
              
              if (a==2) {     
              cout<<"6789";
              }
              if (a==3) {
              cout<<"\b"; 
              cout<<"6789";
              }
              if (a==4) {
              cout<<"\r";
              cout<<"6789";
              }
    

    Bildschirmausgabe:

    12345 //erster Durchlauf
    123456789 //hängt die if Anweisung die weiteren Zahlen an
    12346789 //durch \b ein Zeichen zurück gegangen und dort angefangen
    67895 //komplet an den Anfang der Zeile gesprungen und da wieder angefangen

    Die Zeilen werden nicht gelöscht, wie man an der letzten Zahl sieth, sie wurden nur überschrieben.
    Daher wenn man ein Zeichen nur entfernen möchte kann man das indem man es mit einem Leerzeichen überschreibt.

    Mit freundlichen Grüßen Toor
     
Thema: C++ einzelne Zeichen löschen, fortlaufende Zahl
Besucher kamen mit folgenden Suchen
  1. C zeichen löschen

    ,
  2. c wörter aus konsole löschen

    ,
  3. c console zeile zurückspringen

    ,
  4. c zahl löschen,
  5. c letzte konsolenzeichen löschen,
  6. c fortlaufende zahlen
Die Seite wird geladen...

C++ einzelne Zeichen löschen, fortlaufende Zahl - Ähnliche Themen

  1. Sie kann ich mit mit moc eine einzelnes Audiofile abspielen?

    Sie kann ich mit mit moc eine einzelnes Audiofile abspielen?: ich will moc in ein bashscript einbauen und will immer nur ein einzelnes Audiofile starten ohne eine Playlist anzulegen. Geht das mit Moc? oder...
  2. Einen einzelnen Datensatz mit Xml anzeigen

    Einen einzelnen Datensatz mit Xml anzeigen: Einzelnen Datensatz mit XML anzeigen lassen Hi, ich überlege ob ich bei meinem Anwendungsfall xml verwenden kann. Dafür ist es aber notwendig...
  3. Einzelne Spalte aus MySQL Tabelle exportieren

    Einzelne Spalte aus MySQL Tabelle exportieren: Hallo. Ich möchte gern eine einzelne Spalte (Email) aus einer bestehenden MySQL Datenbank Tabelle (Profiles) exportieren. Ich habe die...
  4. string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern

    string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern: [PYTHON] string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern Hallo Forum, ich weis ehrlich gesagt nicht mehr weiter. Ich...
  5. einzelne Programme reglementieren möglich ?

    einzelne Programme reglementieren möglich ?: Hi, ich würde gerne einzelnen Programmen den Zugriff auf das Internet, oder wahlweise das Netzwerkinterface, verwehren. Ist dies möglich ? Ich...