我正在自学C ++,我正在考虑一个简单的程序来熟悉语法。
int main(){
int num;
cout << "Enter a positive number:";
cin >> num;
printStar(num);
}
void printStar(int num){
.............................
}
这样函数printStar接受一个整数并打印*
例如接受3并打印***
或接受6并打印******
或接受2并打印**
。我正在考虑使用for或while循环并完成任何更好的想法建议吗?
答案 0 :(得分:3)
您可以使用std::string
:
using namespace std; cout << string(num, '*') << endl;
或STL的fill_n
:
using namespace std; fill_n(ostream_iterator<char>(cout, ""), num, '*');
答案 1 :(得分:2)
您可以使用cout.fill
:
cout.fill('*');
cout.width(num);
cout << ' ' << endl;
请注意,这会混淆很多东西,所以你应该捕捉并重置填充和宽度:
char oldfill = cout.fill('*');
streamsize w = cout.width();
cout.fill('*');
cout.width(num);
cout << ' ' << endl;
cout.width(w);
cout.fill(oldfill);
答案 2 :(得分:1)
由于这是为了您自己的学习,我没有提供解决方案,提示是使用For或While循环。如果它有效,那就好了,否则就发布你的代码和问题。