还是贴代码吧,这样来得实际,. aNum = 700; 
bNum = 65; char *aCout; 
itoa(aNum, aCout, 10); 
char *bCout; 
itoa(bNum, bCout, 10); 这段代码看似没什么问题, 
就是把int类型的aNum和bNum转成char类型并赋值给aCout和bCout. 
可是奇怪的是为什么执行之后,转换成char*类型的aCout和bCout都是65了.? 
按理说ipCout应该是700,sucCout才是65.真的是让我百思不解. 
知道的说一下.我现在的程序就卡在这个地方了,闷死了.

解决方案 »

  1.   

    不明白这两个函数,一般都是用spintf来完成转换
      

  2.   

    char *aCout; 
    itoa(aNum, aCout, 10); 
    //是有问题的,acount是野蛮指针,itoa不会分配内存
    char aCount[65];
    itoa(aNum, aCout, 65);
      

  3.   

    char *aCout; 
    请先New一下吧。或者直接自己写转化。比如:int num;
    char str[100];转化函数:
    void trans()
    {
       int num_temp =num;
      int len =0;
      do
      {
        str[len]= num_temp % 10 +'0';
       len++;
       num_temp \ = 10;   }while (num_temp = 0);}
    str[len]= 0; \\字符串结束
      

  4.   

    void trans() 

      int num_temp =num; 
      int len =0; 
      do 
      { 
        str[len]= num_temp % 10 +'0'; 
      len++; 
      num_temp \ = 10;   }while (num_temp == 0); //应该是 == 刚才打错了} str[len]= 0; \\字符串结束
      

  5.   

    晕,又错了。 }while (num_temp != 0); //应该是 != 。哎,PASCAL是 do ...until 的
    C是 do... while 的,
    一到吃饭时间,就傻了。
      

  6.   


    //内存空间都没分配,转换过来后,数据放哪呢
    void main()
    {
    int aNum = 700; 
    int bNum = 65; 

    char aCout[10] = {0}; 
    itoa(aNum, aCout, 10); 

    char bCout[10]; 
    itoa(bNum, bCout, 10);  cout<<"aCout="<<aCout<<"\tbCout="<<bCout<<endl;
    }