是否有可能乘以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