online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon keinName vom 14.08.2020, 01:20 Options

CLSCR and endless-Loop (C++ and WINCE)

Hallo Leute!

Ich habe zwei "kleine" Probleme und hoffe hier einen oder mehrere schlaue Köpfe zu finden :)

Zu erst zu meinem Aufbau einige Infos:
Ich schreibe auf meinem Notebook (Microsoft eMbedded Visual C++) ein Programm (C++) und lade danach das Programm auf ein externes Gerät mit WinCE. Da arbeite ich mit der CMD-Konsole (Datenausgabe).

Nun habe ich folgende Probleme...

1. Wie löscht man mit C++ auf Win CE den gesamten Konsoleninhalt? So quasi mit clscr(); aber nun für Win CE, da dieser Befehl hier nicht funzt!?!?


2. Ich habe eine Endlosschlaufe programmiert, welche jede Sekunde Daten ausgiebt. Wie kann ich diese Endlosschlaufe mit einem Tastendruck (Q) unterbrechen?? Das Problem ist, wenn ich mit "scanf" arbeite, da meine Datenausgabe unterbrochen/angehalten wird...


while(1)  //endless loop
{

     printf("%i\n", pReportSens1);	
     Sleep(1000);
}


Ich würde mich auf informationsreiche Antworten freuen...

Freunliche Grüsse
Kevin


Antwort schreiben

Antwort 1 von Jaja vom 14.08.2020, 10:49 Options

Zitat:
1. Wie löscht man mit C++ auf Win CE den gesamten Konsoleninhalt? So quasi mit clscr(); aber nun für Win CE, da dieser Befehl hier nicht funzt!?!?


hmm.. müsstest mal in die (sicherlich nur zur hälfte vorhandene, wie immer bei ms) dokumentation schauen, welche bibliotheken bei ce unterstützt werden bzw. vorhanden sind.
sicher gibt es auch hier eine solche funktion - vielleicht die gleiche, nur in einer anderen bibliothek.

als work around gib doch einfach >80 leerzeilen ( \n ) aus.


Zitat:
2. Ich habe eine Endlosschlaufe programmiert, welche jede Sekunde Daten ausgiebt. Wie kann ich diese Endlosschlaufe mit einem Tastendruck (Q) unterbrechen?? Das Problem ist, wenn ich mit "scanf" arbeite, da meine Datenausgabe unterbrochen/angehalten wird...


probiers mal mit "int getchar(void);". 2x enter oder beliebige taste + enter sollte funktionieren..

weiß garnicht mehr bei der rückgabe == (int)0 bzw. false heißt, das kein zeichen gelesen wurde oder umgekehrt - probiere es aus.

Antwort 2 von Jaja vom 14.08.2020, 10:51 Options

Zitat:
gib doch einfach >80 leerzeilen ( \n ) aus.


sorry, über 25 sollte ja reichen bei 25x80 konsole ;)

Antwort 3 von keinName vom 14.08.2020, 23:39 Options

Hallo Jaja (diese Namen, welche man sich in diesem Forum immer wieder neu aussuchen muss :D)

Vielen Dank für Deine Bemühungen und Antworten!

Habe Deine Tipps nun angewendet:

Zum Problem Nr.1 (clscr...): Ich habe mit einer for-Schleife die \n ausgegeben. Jedoch sieht das ziemlich hässlich aus in der Konsole und danach schreibt im unteren Bereich weiter. Oder mache ich was falsch wenn ich schreibe:


for (i=0; i<25; i++)
{
	printf("\n");
}
("i" wurde weiter oben initalisiert...)


Zum Problem Nr.2...
Ich habe das ganze nun folgendermassen realisiert:

do //endless loop
{
     printf("%i\n", pReportSens1);
						
     quit = getchar();
						
     Sleep(1000);
}
while(quit != 'q' || quit != 'Q');

Jedoch unterbricht die Zeile (quit = getchar();) meinen Loop. Es erfolgt nur 2x eine Ausgabe über printf und danach stoppt der Loop.

Was meist Du dazu?

Antwort 4 von keinName vom 14.08.2020, 23:43 Options

P.S. quit wurde natürlich als"char" initialisiert.

P.S.S. sorry für die verspäteten Reaktionen, bin zur Zeit in Seattle (Zeitverschiebung).

Ähnliche Themen

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 20:06:00 2026