在C++中打印用新行分隔的6,5,4,3,2个字符

Print 6,5,4,3,2 characters separated by a new line in C++?

本文关键字:字符 2个 C++ 打印 分隔 新行      更新时间:2023-10-16

使用for循环,如何将以下输出打印到控制台中:

******
*****
****
***
**

旁注:出于兴趣,是否可以在没有for循环的情况下执行上述操作?

你可以试试这个:

for (int i=6; i>1; i--)
    {
        for (int j=0; j<i; j++)
            cout<<"*";
        cout<<endl;
    }

输出:

******
*****
****
***
**

一个while循环怎么样:http://ideone.com/ezk6Ax

string s(6, '*');
while (s.size() > 1) {
    cout << s << endl;
    s.pop_back();
}
#include <iostream>
#include <string>
int main()
{
  const std::string s("*******");
  for (int i = s.size() - 1; i > 1; i--) {
    std::cout << s.substr(0, i) << std::endl;
  }
  return 0;
}

http://coliru.stacked-crooked.com/a/10924920bc66f91d

我的变体:

#include <algorithm>
#include <iostream>
#include <iterator>
int main()
{
    for (size_t i = 6; i >= 2; --i) {
        std::generate_n(
            std::ostream_iterator<char>(std::cout, ""), i,
            []() { return '*'; });
        std::cout << 'n';
    }
}