问题
Hey guys I have another question, so I am working on a RPG and I am trying to use the Pokemon game type text were one letter pops up at a time. Here is my code:
#include <iostream>
#include <string>
#include <windows.h>
#include <sys/types.h>
using namespace std;
string name;
VOID WINAPI Sleep(
_In_ DWORD dwMilliseconds
);
void pushX(int num) {
for (int i = 0;i<num;i++)
cout << " ";
}
void main() {
system("cls");
cout << "H";
Sleep(50);
cout << "e";
Sleep(50);
cout << "l";
Sleep(50);
cout << "l";
Sleep(50);
cout << "o";
Sleep(50);
cout << ",";
Sleep(50);
cout << " ";
Sleep(50);
cout << "W";
Sleep(50);
cout << "e";
Sleep(50);
cout << "l";
Sleep(50);
cout << "c";
Sleep(50);
cout << "o";
Sleep(50);
cout << "m";
Sleep(50);
cout << "e";
Sleep(50);
cout << " ";
Sleep(50);
cout << "T";
Sleep(50);
cout << "o";
Sleep(50);
cout << " ";
Sleep(50);
cout << "T";
Sleep(50);
cout << "h";
Sleep(50);
cout << "e";
Sleep(50);
cout << " ";
Sleep(50);
cout << "G";
Sleep(50);
cout << "a";
Sleep(50);
cout << "m";
Sleep(50);
cout << "e";
Sleep(50);
cout << "!\n";
system("Pause");
system("cls");
Sleep(50);
cout << "P";
Sleep(50);
cout << "l";
Sleep(50);
cout << "e";
Sleep(50);
cout << "a";
Sleep(50);
cout << "s";
Sleep(50);
cout << "e";
Sleep(50);
cout << " ";
Sleep(50);
cout << "T";
Sleep(50);
cout << "e";
Sleep(50);
cout << "l";
Sleep(50);
cout << "l";
Sleep(50);
cout << " ";
Sleep(50);
cout << "M";
Sleep(50);
cout << "e";
Sleep(50);
cout << " ";
Sleep(50);
cout << "Y";
Sleep(50);
cout << "o";
Sleep(50);
cout << "u";
Sleep(50);
cout << "r";
Sleep(50);
cout << " ";
Sleep(50);
cout << "N";
Sleep(50);
cout << "a";
Sleep(50);
cout << "m";
Sleep(50);
cout << "e";
Sleep(50);
cout << "!\n>> ";
cin >> name;
system("cls");
Sleep(50);
cout << "H";
Sleep(50);
cout << "e";
Sleep(50);
cout << "l";
Sleep(50);
cout << "l";
Sleep(50);
cout << "o";
Sleep(50);
cout << ",";
Sleep(50);
cout << " ";
Sleep(50);
cout << name;
Sleep(50);
cout << "!\n";
system("pause");
return;
}
And this is obviously inefficient. It does the job but way too many lines of code. I also don't want just one line of code that runs on forever. I am looking for maybe a function that finds whenever I put a cout and makes every letter appear at a deley of .050 seconds or Sleep(50); thanks for the help U
回答1:
void pokeprint(char* s){
int N = strlen(s);
system("cls");
for(int i=0; i<N;i++)
{
Sleep(50);
cout << s[i];
}
cout << "\n";
system("Pause");
system("cls");
}
来源:https://stackoverflow.com/questions/42016655/delayed-text-need-it-more-efficiently-delayed-c