Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在Linux中尝试使用ltoa编译代码时引发错误_C - Fatal编程技术网

C 在Linux中尝试使用ltoa编译代码时引发错误

C 在Linux中尝试使用ltoa编译代码时引发错误,c,C,当我试图编译如下所示的代码时,我遇到了编译错误 #include <stdlib.h> main() { int val = 10; char buff[10]; char *ptr; ptr = ltoa(val,buff,10); printf("The val is %s\n",buff); } 请让我知道如何解决这个问题。谢谢和问候。是itoa,而不是ltoa。只要更改调用就可以了。它是itoa()而不是ltoa(),但即使itoa

当我试图编译如下所示的代码时,我遇到了编译错误

#include <stdlib.h>

main()
{
    int val = 10;
    char buff[10];
    char *ptr;
    ptr = ltoa(val,buff,10);
    printf("The val is %s\n",buff);
}

请让我知道如何解决这个问题。谢谢和问候。

itoa
,而不是
ltoa
。只要更改调用就可以了。

它是
itoa()
而不是
ltoa()
,但即使
itoa()
也不是标准的库函数。
如果您希望您的程序是可移植的,请在C99中使用
sprintf()
snprintf()

请参阅

Arrgghh C/C++!看起来itoa()不是ANSI C标准,也不起作用
在Linux上使用GCC(至少是我正在使用的版本)。这类事情令人沮丧,尤其是如果您希望您的代码在不同的平台(Windows/Linux/Solaris/任何平台)上工作。

C没有
itoa
ltoa
函数,C有
atoi
函数将指向
int
表示的字符串转换为字符串


如果要使用该功能,必须实现它。

正确。您收到的编译器警告具有误导性;它不知道ltoa是什么,所以假设它返回一个整数。这可能导致您假设
ltoa
返回
int
。真正的错误在链接器中,它解释说在任何可用代码中都找不到函数
ltoa
itoa
出现在
stdlib.h
中的可能性很小。你真的应该改用sprintf。令人沮丧的是,当有更干净、普遍可移植的替代品时,所有面向Windows的糟糕书籍、教程和示例都会教你像
itoa
这样虚假的不可移植的东西。
[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.
Portability
This function is not defined in ANSI-C and is not part of C++, but is 
supported by some compilers.