C ++在不同的行中绘制一个矩形

时间:2017-10-24 14:06:57

标签: c++

我试图通过使用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;
}

输出为:

它应该是行和列。

4 个答案:

答案 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';
}