Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » text in schleife löschen

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
22.07.2015, 21:03 Uhr
~benutzi
Gast


Hallo!

Ich möchte in meinem Programm ein nach dem Wort Lade 3 Punkte zetzen
(wenige milisekunden abstand pro punkt) und dann alle löschen.

bei "// löschen" möchte ich gerne alles was je in der while-schleife geschrieben
wurde löschen.
ist das überhaupt mögich?

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

int main()     {
    
    unsigned long long a = 0;
    string str = ".";

    cout << "Lade";
    
    while(1)    {
    a++;
    if(! (a % 12000000))     {
        cout << str;

       }
    if(! (a % (3 * 12000000)))    {
        // löschen
    }
    }
    
}



-----
Edit: cpp-Tags eingesetzt. - Beim nächsten mal bitte selber einsetzen.

Dieser Post wurde am 22.07.2015 um 22:54 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.07.2015, 23:27 Uhr
Hans
Library Walker
(Operator)


Hi,

grundsätzlich ja, aber nicht mit Standard C/C++. Dazu brauchst Du eine Zusatzbibliothek, die die Möglichkeit bietet, den Cursor zu positionieren. Bei DOS-Compilern hies das Teil conio.h und war meisst Bestandteil des Compilerpaketes. Heute nimmt man dafür ncurses oder was vergleichbares.

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.07.2015, 07:22 Uhr
Tommix



'Morgen,
Einspruch: Mit Escapesequenzen sollte es halbwegs portabel gehen:

C++:
cout << "\b \b";


geht ein z.B. Zeichen zurück (Backspace), überschreibt was da stand mit einem Leerzeichen und geht wieder zurück (falls man was anderes hinschreiben will). Genauso kommt man mit "\r" wieder an den Zeilenanfang. Man muß halt nur wissen, wieviel Text zu überschreiben ist.
Allerdings machst Du Dich hier:

Zitat:

C++:
if(! (a % 12000000)) ...



völlig von der Geschwindigkeit des Zielsystems abhängig. Ich würde da eher schauen, wieviel Zeit vergangen ist (Header <ctime>).

Gruß,
Tommix

Dieser Post wurde am 23.07.2015 um 07:22 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.07.2015, 23:52 Uhr
Hans
Library Walker
(Operator)


Hi,

@Tommix: Interessant, aber Windows kocht da mal wieder 'ne Extrawurst...

C++:
cout << "test...";
cout << "\b \b\b\b\r";
cout << "T" << endl;


liefert unter Vista:

Code:
Test..



Ach ja, als ich Escape-Sequenzen gelesen habe, schwebten mir zuerst ANSI-Escape-Sequenzen durch den Kopf, aber die werden von Windows in der Konsole nicht mehr unterstützt, d.h. einen Treiber wie ANSI.SYS oder ähnliches gibt es nicht mehr. Deshalb hatte ich auch gleich sowas wie gotoxy() zur Cursorpositionierung im Kopf, was es früher mal in conio gab. Aber ~benutzi scheint ja unter Linux zu arbeiten, da sieht das natürlich anders aus.

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
004
24.07.2015, 07:05 Uhr
Tommix




Zitat von Hans:
..., aber Windows kocht da mal wieder 'ne Extrawurst...

C++:
cout << "test...";
cout << "\b \b\b\b\r";
cout << "T" << endl;


liefert unter Vista:

Code:
Test..




'Morgen,
ich versteh nicht ganz. Was sollte denn sonst rauskommen? Ein Schritt zurück, den letzten Punkt löschen. Die restlichen \b's sind durch den Carriage Return am Ende relativ sinnfrei denn zum Schluß steht der Cursor so oder so am Zeilenanfang.

- Tommix

Dieser Post wurde am 24.07.2015 um 07:06 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.07.2015, 01:08 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von Tommix:

ich versteh nicht ganz. Was sollte denn sonst rauskommen?


was sonst rauskommen sollte? Na:

Code:
Test


Also ohne die Punkte am Ende. Und das Carrige Return dient dazu, den Cursor an den Anfang zu setzen, um dort das kleine 't' mit einem grossen 'T' zu überschreiben.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 25.07.2015 um 01:09 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.07.2015, 08:55 Uhr
Tommix




Zitat:

005
Heute, 01:08 Uhr
Hans


Wohnst Du in Californien oder bist Du ein Vampir ?
Um die Punkte zu löschen darfst Du die Leerzeichen zwischen den /b's nicht weglassen.


C++:
cout << "\b \b\b \b\b \b";
// oder besser
cout << "\b\b\b   ";


- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.07.2015, 20:55 Uhr
Hans
Library Walker
(Operator)



Zitat von Tommix:


Zitat:

005
Heute, 01:08 Uhr
Hans


Wohnst Du in Californien oder bist Du ein Vampir ?


Weder, noch! - Aber ich bin 'ne Nachteule...


Zitat von Tommix:

Um die Punkte zu löschen darfst Du die Leerzeichen zwischen den /b's nicht weglassen.


C++:
cout << "\b \b\b \b\b \b";
// oder besser
cout << "\b\b\b   ";


- Tommix


Ach so ist das. - Dann schiebt der Backspace also wirklich nur den Cursor zurück. Ich hab das mal irgendwo so gesehen, das beim Backspace auch gleich ein Delete mit impliziert war, und bin davon ausgegangen, dass das hier auch so ist. Ist aber wohl doch nicht so. Von der Logik her auch eher korrekt.

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
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: