当我尝试编译代码时出现编译错误,如下所示
#include <stdlib.h>
main()
{
int val = 10;
char buff[10];
char *ptr;
ptr = ltoa(val,buff,10);
printf("The val is %s\n",buff);
}
我收到如下所示的编译错误:
[mcanj@varaprada ~]$ cc -g samp2.c
samp2.c: In function `main':
samp2.c:8: warning: assignment makes pointer from integer without a cast
samp2.c:11:2: warning: no newline at end of file
/tmp/ccifnKFx.o(.text+0x23): In function `main':
/home/mcanj/samp2.c:8: undefined reference to `ltoa'
collect2: ld returned 1 exit status.
请告诉我如何解决此问题。谢谢和问候。
答案 0 :(得分:3)
它是itoa()
而不是ltoa()
,但即使itoa()
也不是标准库功能。
如果您希望自己的程序可移植,请使用C99中的sprintf()
或snprintf()
。
答案 1 :(得分:2)
它是itoa
,而不是ltoa
。只需更改通话即可。
答案 2 :(得分:1)
请参阅http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
Portability
This function is not defined in ANSI-C and is not part of C++, but is
supported by some compilers.
http://www.strudel.org.uk/itoa/
Arrgghh C / C ++!似乎itoa()不是ANSI C标准并且不起作用 在Linux上使用GCC(至少我正在使用的版本)。这样的事情令人沮丧,特别是如果您希望您的代码在不同的平台上工作(Windows / Linux / Solaris /等等)。
答案 3 :(得分:1)
C没有itoa
或ltoa
个函数,C具有atoi
函数,用于转换指向int
表示的字符串。
如果要使用它,必须实现该功能。