也许这不是一个非常重要的问题,而是刚刚开始。 为什么这不能正确编译?
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i = 15;
char word[100];
itoa (i,word,10);
printf("After conversion, int i = %d, char word = %s", i, word);
}
我一直收到错误消息
Undefined symbols:
"_itoa", referenced from:
_main in ccubsVbJ.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
答案 0 :(得分:6)
使用sprintf代替,itoa不是C标准的一部分,它可能不包含在你的stdlib实现中。
sprintf(word,"%d",i);
更新:
如评论中所述,snprintf更安全,可避免缓冲区溢出。在这种情况下,没有必要,因为缓冲区长于可以存储在32位(或64位整数)中的最大整数。但是记住缓冲区溢出是件好事。
答案 1 :(得分:2)
itoa
是一个非标准函数,它可能不包含在您的实现中。请改用sprintf
之类的内容。