operator -
类中没有运算符std::string
。您应该改用该方法erase
,
但是,如果您要为每一行输出字符串,则不会有两个循环一个接一个。
似乎分配的含义类似于以下内容
#include <iostream>
#include <iomanip>
int main()
{
while ( true )
{
const char c1 = '+';
const char c2 = ' ';
std::cout << "Enter a non-negative number (0 - exit): ";
unsigned int n;
if ( not ( std::cin >> n ) or ( n == 0 ) ) break;
std::cout << '\n';
for ( unsigned int i = 1; i <= n; i++ )
{
for ( unsigned int j = 1; j <= i; j++ )
{
std::cout << c1;
}
std::cout << std::setw( 2 * n - i ) << std::setfill( c2 )
<< std::right << c2;
for ( unsigned int j = n - i + 1; j != 0; j-- )
{
std::cout << c1;
}
std::cout << '\n';
}
std::cout << std::endl;
}
return 0;
}
程序输出可能看起来像
Enter a non-negative number (0 - exit): 10
+ ++++++++++
++ +++++++++
+++ ++++++++
++++ +++++++
+++++ ++++++
++++++ +++++
+++++++ ++++
++++++++ +++
+++++++++ ++
++++++++++ +
Enter a non-negative number (0 - exit): 9
+ +++++++++
++ ++++++++
+++ +++++++
++++ ++++++
+++++ +++++
++++++ ++++
+++++++ +++
++++++++ ++
+++++++++ +
Enter a non-negative number (0 - exit): 8
+ ++++++++
++ +++++++
+++ ++++++
++++ +++++
+++++ ++++
++++++ +++
+++++++ ++
++++++++ +
Enter a non-negative number (0 - exit): 7
+ +++++++
++ ++++++
+++ +++++
++++ ++++
+++++ +++
++++++ ++
+++++++ +
Enter a non-negative number (0 - exit): 6
+ ++++++
++ +++++
+++ ++++
++++ +++
+++++ ++
++++++ +
Enter a non-negative number (0 - exit): 5
+ +++++
++ ++++
+++ +++
++++ ++
+++++ +
Enter a non-negative number (0 - exit): 4
+ ++++
++ +++
+++ ++
++++ +
Enter a non-negative number (0 - exit): 3
+ +++
++ ++
+++ +
Enter a non-negative number (0 - exit): 2
+ ++
++ +
Enter a non-negative number (0 - exit): 1
+ +
Enter a non-negative number (0 - exit): 0