char Pact_NoBuf = new char[16];
long Next_Pact_No; 
 CString Initial_Pact_No = "0000000000000000";
 while(customer_info.GetData(Initial_Pact_No))
{
Next_Pact_No=atol(customer_info.Pact_No)+1;
_ltoa(Next_Pact_No,Pact_NoBuf,10);
Initial_Pact_No=Pact_NoBuf;
}
这里第一次运算后
Initial_Pact_No实际值为"1",
我想最终使Initial_Pact_No的值为"0000000000000001";另外如果Initial_Pact_No为"11"或两位以上时,
Initial_Pact_No最终的值中"0"的个数逐个递减,如"0000000000000011"
请问各位高手该怎么转化呢?

解决方案 »

  1.   

    >这里第一次运算后
    >Initial_Pact_No实际值为"1",
    >我想最终使Initial_Pact_No的值为"0000000000000001";
    -------------------------
    这个好办, 求 Initial_Pact_No 长度, 如果少于你需要的长度, 则在前面加字符 '0'
      

  2.   

    Initial_Pact_No.Format("%nd",Next_Pact_No);
    n就是不足n位以0补上!
      

  3.   

    Initial_Pact_No.printf("%016d\n",1);
    OK?
      

  4.   

    Initial_Pact_No.Format("%nd",Next_Pact_No);
    n就是不足n位以0补上!
    --------------------------------------------
    有问题啊!
    “Unhandled esception in dd.exe (MSVCRTD.DLL): 0xC0000005:Access Violation”
    怎么办?
      

  5.   

    Initial_Pact_No.printf("%016d\n",1);
    OK?
    --------------------------------------
    取出来了!
    Initial_Pact_No的值为“0000000000000001”;
    但是输入的到数据库的时候(char)Pact_No列去的时候值为“1”呢/?
      

  6.   

    好!
    我在SQL语句做了下变化就OK了!
    谢谢各位帮助!