打印出来的文件格式如下所示,第一行总是向左边多靠了一个字符。我想把每一行都对齐了。
   1  00000b50aea64e3d8d17173c87f45ce9
    2  000021194cad484b93e0e73f7c679d39 
    3  00002b47174b4aa19f5a0a648d8970f8  
    4  00002ebb4dd44ff1890c1b0d7ce1bd06代码如下所示:
CString str;
CFile file;
......
str.Format("%4d  %s\n",count,(char*)key.get_data);
try
{
file.Write(str,str.GetLength()+1);
}

解决方案 »

  1.   

    打印出来的文件格式如下所示,第一行总是向左边多靠了一个字符。我想把每一行都对齐了。 
    1  00000b50aea64e3d8d17173c87f45ce9 
     2  000021194cad484b93e0e73f7c679d39 
     3  00002b47174b4aa19f5a0a648d8970f8  
     4  00002ebb4dd44ff1890c1b0d7ce1bd06 代码应当是如下所示: 
    CString str; 
    CFile file; 
    ...... 
    str.Format("%-4d  %s\r\n",count,(char*)key.get_data); 
    try 

    file.Write(str,str.GetLength()+1); 
    }
    就是说,除了第一行外,每一行,第一个位置都成了空格,我觉的可能是‘\n’占的,但没有\r与\n时,记事本打开后,无法换行显示。
      

  2.   

    file.Write(str,str.GetLength()+1); 、、为什么加1?