亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,關于C++cout.width()函數使用后無法實現預期效果,該怎么解決?

您好,關于C++cout.width()函數使用后無法實現預期效果,該怎么解決?

PIPIONE 2021-12-08 11:07:17
源代碼://用指針變量輸出二維數組的值#include<iostream>using namespace std;int main(){int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;p=&a[0][0];for(i=0;i<3;i++){for(j=0;j<4;j++)cout.width(4);cout<<*(*(a+i)+j);cout<<endl; //預期輸出3*4的整齊數組}for(i=0;i<3;i++) //輸出指針地址{for(j=0;j<4;j++)cout<<*(a+i)+j<<" ";cout<<endl;}cout<<endl;return 0;}但結果顯示為:
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

程序沒有錯,for循環中要做的事必須放在大括號中,否則只執行后面一句,像你的程序中for(j=0;j<4;j++)
cout.width(4);cout<<*(*(a+i)+j); 實際上這個for循環只執行cout.width(4);而不執行后面一句,改成下面這樣:
#include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;
p=&a[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout.width(4);
cout<<*(*(a+i)+j);
}
cout<<endl; //預期輸出3*4的整齊數組
}
for(i=0;i<3;i++) //輸出指針地址
{
for(j=0;j<4;j++)
{
cout<<*(a+i)+j<<" ";
}
cout<<endl;
}
cout<<endl;
return 0;
}



查看完整回答
反對 回復 2021-12-12
  • 1 回答
  • 0 關注
  • 370 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號