注册 登录
编程论坛 C++教室

数据输出格式问题

hsnr 发布于 2010-05-30 09:23, 515 次点击
  编写了如下程序段,语句1000打算按每行12个数据的格式输出,运行结果不是如此,都输出在同一行,请问是什么原因?

    string opf;
    cout<<"请输入输出数据文件名"<<endl;
    cin>>opf;

    ofstream optfile;
    optfile.open(opf.c_str(),ios::app);
    if(optfile.fail())
    {
        cout<<"基本数据(输出)文件无法打开"<<endl;
        exit(2);
    }

    for(int i=0;i<NPOIN;i++)
    {
        for(int j=0;j<NPOIN;j++)
        {
1000      optfile<<setiosflags(ios::fixed)<<setprecision(5)<<setw(12)<<dMmatrix[i][j];
        }
        cout<<endl;
    }
3 回复
#2
bccn2502010-05-30 11:18
看了一下,有点不懂,首先,最好先把 NPOIN 的值说一下吧(这是我的个人要求),
还有就是你是希望 1000 那一行就那一句就能输出你说的那种 一行显示12个数据的效果,还是要算上循环?

如果只是那一句的话,我怀疑你可能把 setw(12)理解错了

如果是算上循环的话建议在 1000 语句后面加一条 if((j%12)==0){cout<<endl;}  试试吧

for(int i=0;i<NPOIN;i++)
    {
        for(int j=0;j<NPOIN;j++)
        {
1000      optfile<<setiosflags(ios::fixed)<<setprecision(5)<<setw(12)<<dMmatrix[i][j];
            if((j%12)==0)
            {
                cout<<endl;
            }
        }
        cout<<endl;
    }


[ 本帖最后由 bccn250 于 2010-5-30 11:20 编辑 ]
#3
apull2010-05-30 11:39
if((j%12)==0)
            {
                optfile <<endl;
            }
#4
hsnr2010-05-30 11:54
谢谢!
1