我必須創建一個聖誕賀卡,需要包含使用嵌套for循環生成的設計。C++多行文本塊
輸出需要在所有四邊都有一個邊框,其中包含可變文本以及嵌套for循環設計。
沿東西這行:
我試圖用一個for循環生成邊境把設計裏面,但在打印多設計時,問題出現了。
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
char tree[10][10];
int i,j;
for(i=0; i<7; i++){
for(j=0; j<7; j++){
if(i==0 && j==3){
// cout << '*';
tree[i][j] = '*';
}
else if(i==1 && j==3){
// cout << '|';
tree[i][j] = '|';
}
else if(i==2 && j==3){
// cout << 'M';
tree[i][j] = 'M';
}
else if(i==3 && j>1 && j<5){
// cout << 'A';
tree[i][j] = 'A';
}
else if(i==4 && j>0 && j<6){
if(j % 2 == 0){
// cout << 'o';
tree[i][j] = 'o';
} else {
// cout << 'A';
tree[i][j] = 'A';
}
}
else if(i==5){
if(j % 2 == 0){
// cout << 'A';
tree[i][j] = 'A';
} else {
// cout << '~';
tree[i][j] = '~';
}
}
else if(i==6 && j==3){
// cout << "M";
tree[i][j] = 'M';
}
else {
// cout << ' ';
tree[i][j] = ' ';
}
}
tree[i][7] = '\n';
}
tree[6][8] = '\0';
for(i=0; i<30; i++){
for(j=0; j<70; j++){
if(i==0 || i==29){
cout << "^";
} else if(j==0 || j==69){
cout << "*";
}
int a,b;
if(j>=42 && j<50 && i >= 10 && i< 17){
for(a=0; a<7; a++){
for(b=0; b<8; b++){
cout << tree[a][b];
j++;
}
i++;
}
}
else {
cout << " ";
}
}
cout << endl;
}
return 0;
}
由於設計是多行的,因此會將整個邊框向下推。
我對這種方法有點難過。也許使用setw()
?
顯然我無法在沒有登錄的情況下查看該圖片。也許您需要更改一些設置嗎?通常我可以在imgur上看到很好的東西。 – BoBTFish
此外,你的代碼甚至不會編譯。 (最後一個嵌套'for'循環中'a'和'b'的類型是什麼?) – BoBTFish
如果你將你的'tree'數組作爲你的輸出的確切大小,並預先填充空格,這可能會容易得多。 – usr2564301