我编写的程序应该从用户输入中获取多行,然后显示多行星号,第一行有一个星号,第二行有两个星号,依此类推。 它有效,但我有两个问题:
1)每一行的开头总有一个额外的符号,我不知道它的起源。我已经尝试显示数组的[0]值,但它似乎不是来自那里。
2)在输入一些(而不是全部)行时,程序会在行之后立即显示附加的随机符号。这是动态内存分配的问题吗?
感谢您的帮助。
#include<iostream>
using namespace std;
int main()
{
cout << "Enter the number of rows: ";
int number;
cin >> number;
int q = number + 1;
char dot = '.';
char asterisk = '*';
char * array1 = new char[q];
int n, m, s;
n = number;
for (n; n > 0; n--)
{
array1[n] = asterisk;
for (m = n - 1; m > -1; m--)
{
array1[m] = dot;
}
cout << array1 << endl;
}
delete [] array1;
return 0;
}
答案 0 :(得分:0)
char []没有以NUL字符结尾,因此&lt;&lt;操作员不知道何时停止写作。尝试使用cout.write()代替。