是否有可能乘以int的char?整数乘char(C++)
例如,我试图制作一个图表,每次发生数字时都带*。
因此,像,但这不起作用
char star = "*";
int num = 7;
cout << star * num //to output 7 stars
是否有可能乘以int的char?整数乘char(C++)
例如,我试图制作一个图表,每次发生数字时都带*。
因此,像,但这不起作用
char star = "*";
int num = 7;
cout << star * num //to output 7 stars
我不认为这是操作“乘法”,这只是混乱。连接是一个更好的词。
在任何情况下,名为std::string
的C++标准字符串类都有一个非常适合您的构造函数。
string (size_t n, char c);
内容被初始化为通过字符c
,n
倍的重复而形成的字符串。
所以你可以是这样的:
char star = '*';
int num = 7;
std::cout << std::string(num, star) << std::endl;
确保包括相关的头,<string>
。
的方式你这样做会做对7号和输出产生的数'*'
字符的二进制表示的数字相乘。
你想要做的(根据你的C++代码注释)这是什么:
你可以这样做:
std::cout << std::string(7, '*');
GMAN的这个问题的过度eningeering激发了我做一些模板元编程进一步过度工程吧。
#include <iostream>
template<int c, char ch>
class repeater {
enum { Count = c, Char = ch };
friend std::ostream &operator << (std::ostream &os, const repeater &r) {
return os << (char)repeater::Char << repeater<repeater::Count-1,repeater::Char>();
}
};
template<char ch>
class repeater<0, ch> {
enum { Char = ch };
friend std::ostream &operator << (std::ostream &os, const repeater &r) {
return os;
}
};
main() {
std::cout << "test" << std::endl;
std::cout << "8 r = " << repeater<8,'r'>() << std::endl;
}
的说法应该是:
char star = "*";
(星* NUM)就会大量繁殖的 '*' 的ASCII值与存储在NUM
要输出 '*' n倍的值,按照别人的想法。
希望这会有所帮助。
//include iostream and string libraries
using namespace std;
int main()
{
for (int Count = 1; Count <= 10; Count++)
{
cout << string(Count, '+') << endl;
}
for (int Count = 10; Count >= 0; Count--)
{
cout << string(Count, '+') << endl;
}
return 0;
}
@dubya,C++的标签是一个更为有用,这里比的 '帮助'。首先,我们可以假设你需要帮助,因为你在这里问一个问题:-) – paxdiablo 2010-04-08 01:37:47