C++ 一次打印一个字母。如何?
C++ Print one letter at the time. How to?
假设我有一个字符串,其中包含一条消息。如果我想把它打印在屏幕上,我可以做到 cout<<string, or cout<<"Hello!"
。但是消息会立即打印出来。
所以我要找的是一个函数,它将一条消息和一个数字作为输入变量,并使用数字作为延迟器一次打印一个字母的消息。
像这样:
void slow_print("Hello!", 5);
这意味着打印每个字母之间有 5 秒的延迟。
不幸的是,我不知道该怎么做(延迟除外,您可以使用 Sleep() 函数来实现),所以我想出了这个丑陋的解决方案:
string A = "A", B = "B", C = "C", D = "D", E = "E" .... //etcetera...
然后我会声明一个向量,其中包含那些字母。然后我可以做一个 for 循环,例如,一次打印一个矢量单元格。
vect[dimension] = { H,e,l,l,o,_,h,o,w,_,a,r,e,_,y,o,u }
for (int i = 0; i<dimension; i++)
{
cout<<vect[dimension];
Sleep(delay_time);
}
这是我找到的唯一解决方案。可以用,但是用起来很不舒服。
有没有人有更好的主意?
我希望社区能帮助我:)
感谢您的宝贵时间。
你可以使用类似的东西:
unsigned long k;
std::string str="Hello"
for (k=0;k<str.size();++k) {
std::cout << str[k]; Sleep(5);
}
您可以索引字符串。例如,如果 str
等于 "Hello"
,str[0]
将等于 'H'
。
您实际上可以索引 std::string
的单个字符。
您的函数可能如下所示:
void slow_print(const std::string& str, int delay_time) {
for (size_t i = 0; i != str.size(); ++i) {
std::cout << str[i];
Sleep(delay_time);
}
}
如果您使用 c++11 或更高版本...
std::string str("hello.");
std::for_each(str.begin(), str.end(), [](char c){
std::cout << c;
Sleep(1000);
});
std::for_each
来自 .
假设我有一个字符串,其中包含一条消息。如果我想把它打印在屏幕上,我可以做到 cout<<string, or cout<<"Hello!"
。但是消息会立即打印出来。
所以我要找的是一个函数,它将一条消息和一个数字作为输入变量,并使用数字作为延迟器一次打印一个字母的消息。
像这样:
void slow_print("Hello!", 5);
这意味着打印每个字母之间有 5 秒的延迟。
不幸的是,我不知道该怎么做(延迟除外,您可以使用 Sleep() 函数来实现),所以我想出了这个丑陋的解决方案:
string A = "A", B = "B", C = "C", D = "D", E = "E" .... //etcetera...
然后我会声明一个向量,其中包含那些字母。然后我可以做一个 for 循环,例如,一次打印一个矢量单元格。
vect[dimension] = { H,e,l,l,o,_,h,o,w,_,a,r,e,_,y,o,u }
for (int i = 0; i<dimension; i++)
{
cout<<vect[dimension];
Sleep(delay_time);
}
这是我找到的唯一解决方案。可以用,但是用起来很不舒服。
有没有人有更好的主意? 我希望社区能帮助我:)
感谢您的宝贵时间。
你可以使用类似的东西:
unsigned long k;
std::string str="Hello"
for (k=0;k<str.size();++k) {
std::cout << str[k]; Sleep(5);
}
您可以索引字符串。例如,如果 str
等于 "Hello"
,str[0]
将等于 'H'
。
您实际上可以索引 std::string
的单个字符。
您的函数可能如下所示:
void slow_print(const std::string& str, int delay_time) {
for (size_t i = 0; i != str.size(); ++i) {
std::cout << str[i];
Sleep(delay_time);
}
}
如果您使用 c++11 或更高版本...
std::string str("hello.");
std::for_each(str.begin(), str.end(), [](char c){
std::cout << c;
Sleep(1000);
});
std::for_each
来自