Sleep-Funktion
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Also mit dem Codeausschnitt kann man das nicht so sagen, zeig mal mehr.
-
Bonzy schrieb:
Wenn ich ihn mit x.length-1 laufen lasse bricht er schon einen Buchstaben vor ende des strings ab ^^
Lass mich raten, deine Laufbedingung sieht jetzt wie folgt aus?
i<x.length()-1Du solltest es schon so machen, wie mein Vorredner geschrieben hat.
Also wederi<=x.length()noch
i<x.length()-1sondern
i<x.length()oder alternativ
i!=x.length()btw:
i=i+1 kannst du auch kurz ++i schreiben.
-
groovemaster schrieb:
i=i+1 kannst du auch kurz ++i schreiben.
ist eigentlich 'i=i+1' mehr sowas wie 'i++' oder eher '++i'?
was meint ihr?
-
a = i++;
a = i; i = i+1;a = ++i;
i = i+1; a = i;
-
also ich hatte es jetzt so eingerichtet :
string slow(string x) { int length=x.length()-1; for(int i=0;i<=length;i=i+1) { cout<<x[i]; Sleep(50); }}das klappt allerdings auch nicht. das programm bricht jetzt schon ein Buchstaben vorher ab
also wäre dankbar wenn mir einer eine komplette funktion rübergibt, die so ähnlich aussieht wie meine, nur sollte sie auch funktionieren

-
Bist Du sicher, dass sie sofort abbricht, oder erst nach 50 Millisekunden?
Mach mal Sleep(500)
-
Liegt an deinem string.
MfG,
*Ranner*
-
das programm bricht ab sobald der string durchgelaufen ist:
ich übergebe der funktion ein string "hallo".
wenn ich starte läuft "hallo" einmal durch und dann kommt eine fehlermeldung.
bzw. wenn ich x.length()-1 laufen hab bricht es bei "hall" ab.
-
1310-Logik schrieb:
Also mit dem Codeausschnitt kann man das nicht so sagen, zeig mal mehr.
-
das komplette programm in dev-c++ :
#include <iostream> #include <stdlib.h> #include <string> #include <windows.h> using namespace std; string slow(string x) { int length=x.length()-1; for(int i=0;i<x.length();i=i+1) { cout<<x[i]; Sleep(500); } } int main(int argc, char *argv[]) { string x="hallo"; cout<<slow(x)<<endl<<endl; system("PAUSE"); return 0; }
-
fehlt wohl ein return...
-
Bonzy schrieb:
...und dann kommt eine fehlermeldung.
Welche denn?
-
OMG!
#include <iostream> #include <stdlib.h> #include <string> #include <conio.h> void slow(std::string); int main(int argc, char *argv[]) { std::string sHallo = _T("Hallo! Dies ist eine Testnachricht."); slow(sHallo); std::cout << std::endl; getch(); return 0; } void slow(std::string sString) { for(unsigned int i = 0; i < sString.length(); ++i) { std::cout << sString[i]; ::Sleep(500); } }
-
ähm vlt solltest du das cout in der main weglassen, weil die funktion gibts ja schon aus. und da die funktion nix zurückgibt, stürzt das cout in der main ab.
-
Es funktioniert ^^
danke

-
und wie geht das mit Buchstaben ?? :p
-
Wie du meinen?