c++ - 如何打印N个相同的字符

标签 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

最佳答案

n/2-1-in=15i >= 7 时为负数,因为n/2 == 7。因此您的程序需要重新设计。

编辑:

只需更改一行:

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

关于c++ - 如何打印N个相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353750/

相关文章:

c - 如何在数组中查找辅音并在c中在它们后面附加ut

JAVA 所以我有这段代码,我正在使用 [60] 数组,当我使用 add 命令时,它会重写我之前所做的所有语句

c++ - 从嵌入式 v8 调用 WebAssembly,无需 JS

c++ - 在使用 Visual Studio 2005 调试时调用函数?

c++ - SDL2 纹理操作教程无法执行 - Lazy Foo http ://lazyfoo.net/tutorials/SDL/40_texture_manipulation/index.php

c++ - 输出句子中单词的第一个字母

python - 我如何在 Python 中找到最长的字符串?

c++ - VS 2017 每次都重新编译所有文件

c++ - 分配器构造()应该默认初始化而不是值初始化吗?

c# - 如何使用较长的分隔符优先于较短的分隔符来拆分字符串?