我正在尝试弄清楚如何多次打印一个字符串。我收到错误。我刚刚尝试了这条线:
cout<<"This is a string. "*2;
我期望输出:“这是一个字符串。这是一个字符串。”,但我没有得到。这条线有什么问题吗?如果没有,这是整个程序:
#include <iostream>
using namespace std;
int main()
{
cout<<"This is a string. "*2;
cin.get();
return 0;
}
我的编译器没有打开,因为我正在进行病毒扫描,所以我无法给出错误信息。但考虑到此网站的这段代码相对简单,我希望有人只要看一眼就能知道我是否做错了什么。
感谢您的反馈。
最佳答案
如果你切换到std::string
,你可以自己定义这个操作:
std::string operator*(std::string const &s, size_t n)
{
std::string r; // empty string
r.reserve(n * s.size());
for (size_t i=0; i<n; i++)
r += s;
return r;
}
如果你尝试
std::cout << (std::string("foo") * 3) << std::endl
你会发现它打印出 foofoofoo
。 (但是 "foo"* 3
仍然是不允许的。)
关于c++ - 在 C++ 中,我认为你可以做 "string times 2"= string string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145792/