我试图通过使用2个for循环在c ++中绘制一个矩形。一切都很好,除了矩形没有正确绘制。有人可以给我一个提示吗?非常感谢!
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
// Variabili
int base1, altezza1;
cout << "Inserisci base del rettangolo:";
cin >> base1;
cout << "Inserisci l'altezza del rettangolo:";
cin >> altezza1;
cout << "I dati che hai inserito sono -> " << "Base:" << base1 << " e Altezza:" << altezza1 << endl;
// Controllo base e altezza maggiori di zero + scrivo in output il rettangolo con i dati in input
if(base1 > 0 && altezza1 > 0)
{
for(int i = 0; i < base1; i++)
{
for(int j = 0; j < altezza1; j++)
{
cout << "#";
}
}
}else{
cout << "Errore";
}
system("PAUSE");
return 0;
}
它应该是行和列。
答案 0 :(得分:5)
使用换行符\n
在适当位置打印新行。在您的情况下,将在内部for
循环之后:
for (int i = 0; i < base1; i++) {
for (int j = 0; j < altezza1; j++) {
std::cout << "#";
}
std::cout << '\n'; // <--- here
}
答案 1 :(得分:1)
在每行打印后添加换行符作为ron提到的答案。并且不需要像我想的那样使用system("PAUSE")
。
for(int j=0;j<altezza1;j++)
{
cout<<"#";
}
cout<<endl; //newline after each row.
尝试在SO中发布所有内容时使用可读代码。
答案 2 :(得分:0)
您需要输出换行符(&#39; \ n&#39;,有关更多信息,请参阅the ascii table),如果矩形需要为空,请执行以下操作:
####
# #
####
您还需要输出空格(也是the ascii table)
答案 3 :(得分:0)
您永远不会打印换行符。这将导致所有输出显示在终端的同一行。
每次完成一行打印时,您都可以通过将'\n'
流式传输到std::cout
来解决您的问题:
for (int i = 0; i < base1; i++)
{
for (int j = 0; j < altezza1; j++)
{
std::cout << "#";
}
std::cout << '\n';
}