如何打印N个相同的字符

时间:2015-02-05 20:51:33

标签: c++ string

有这样的程序

#include <bits/stdc++.h>
using std::cout;
using std::endl;
using std::string;

int main()
{
    const int n = 15;
    for(int i=0;i<n;i++)
        cout << string(n/2-1-i, ' ') << string(i*2+1, 42) << endl;

    return 0;
}

但在此过程中,它会引发异常。有什么方法可以摆脱它或在另一个程序上编写程序。

      *
     ***
    *****
   *******
  *********
 ***********
*************
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create

1 个答案:

答案 0 :(得分:2)

由于n/2-1-i n=15i >= 7

n/2 == 7将为负数。因此,您的计划需要重新设计。

修改

只需更改一行:

   cout << string(n-i-1, ' ') << string(i*2+1, 42) << endl;