c++ 输出 左对齐
我想输出一个8*8的DOUBLE矩阵,这个矩阵里有的元素是无理数小数,有的元素为0。想把它们对齐输出,不知有什么好的办法for(i=0;i<8;i++){for(j=0;...
我想输出一个8*8的DOUBLE矩阵,这个矩阵里有的元素是无理数小数,有的元素为0。想把它们对齐输出,不知有什么好的办法
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{cout<<x[i][j]<<'\t';}
cout<<endl;
}
这个方法不行,设从第一列开始:
如果输出0,TAB后第二个数会后第九列输出
如果输出1.234567,TAB后第二个数会在第十七列输出
造成了输出结果不齐
PS:在C++输出double时,有时输出小数点后六位,有时输出后七位,有时输出后5位,也导致对不齐的情况。不知有什么解决办法。
谢谢!!! 展开
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{cout<<x[i][j]<<'\t';}
cout<<endl;
}
这个方法不行,设从第一列开始:
如果输出0,TAB后第二个数会后第九列输出
如果输出1.234567,TAB后第二个数会在第十七列输出
造成了输出结果不齐
PS:在C++输出double时,有时输出小数点后六位,有时输出后七位,有时输出后5位,也导致对不齐的情况。不知有什么解决办法。
谢谢!!! 展开
4个回答
展开全部
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
cout<<std::left<<setw(20)<<"商品名"<<std::right<<setw(6)<<"金额"<<endl;
cout<<std::left<<setw(20)<<"苹果"<<std::right<<setw(6)<<123<<endl;
cout<<std::left<<setw(20)<<"香蕉橘子"<<std::right<<setw(6)<<1456<<endl;
}
//setw(20) 表明输出的宽度 std::left左对齐 std::right右对齐
展开全部
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
cout.width(20); //加上这句, 设置输出宽度, 20这个值你可以根据情况改下, 或者cout.width(-20), 这两个一个是左对齐, 一个右对齐, 忘记了...
cout<<x[i][j]<<'\t';}
cout<<endl;
}
{
for(j=0;j<8;j++)
{
cout.width(20); //加上这句, 设置输出宽度, 20这个值你可以根据情况改下, 或者cout.width(-20), 这两个一个是左对齐, 一个右对齐, 忘记了...
cout<<x[i][j]<<'\t';}
cout<<endl;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout<<right<<12; 右对齐 cout<<left<<15; 左对齐
参考资料: 如果您的回答是从其他地方引用,请表明出处
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用printf();输出可能会行吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询