CFile.Write()如何能够格式化输出呢?
比如写一个文本文件,
name   age   salary
bill   25    2500
sara   24    2600
如何设置域宽,对齐呢

解决方案 »

  1.   


    CString name;
    int age,salary;

    CString str;
    CStdioFile file(_T("c:\\out.txt"), CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); name = "bill";
    age = 25;
    salary = 2500;
    str.Format("% 20s% 20d% 20d\r\n",name,age,salary);
    file.WriteString(str); name = "sara";
    age = 24;
    salary = 2600;
    str.Format("% 20s% 20d% 20d\r\n",name,age,salary);
    file.WriteString(str); name = "Hayes Devang";
    age = 100;
    salary = 66666600;
    str.Format("% 20s% 20d% 20d\r\n",name,age,salary);
    file.WriteString(str);

    file.Close();
    输出到文件是这样的,不知是否可行
                    bill                  25                2500
                    sara                  24                2600
            Hayes Devang                 100            66666600
      

  2.   

                    bill                  25                2500                sara                  24                2600        Hayes Devang                 100            66666600
      

  3.   

    你先把字符串格式化好再写入不就行了?
    字符串格式化可以用库函数sprintf等,也可以用CString::Format等。
      

  4.   

    我也是VC的初学者,发现这里论坛的热心人好多哦,而且回复很及时,很高兴。
    根据楼上的解答,这样看来Cfile似乎的不如fstream的格式化输出方便哦。不过还是谢谢了。
      

  5.   

    如果要左靠齐的话,加一负号即可,如下
    name = "bill";
        age = 25;
        salary = 2500;
        str.Format("%-20s%-20d%-20d\r\n",name,age,salary);
        file.WriteString(str);