编辑:抱歉,我应该记得这台机器绝对是非标准的,已经插入了各种非标准libc
用于学术目的的实现;-)
As itoa()
确实是非标准的,正如几个有用的评论者提到的,最好使用sprintf(target_string,"%d",source_int)
或者(更好,因为它可以避免缓冲区溢出)snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
。我知道它不像itoa()
,但至少你可以编写一次,到处运行(tm);-)
这是旧的(编辑过的)答案
您说的默认值是正确的gcc libc
不包括itoa()
与其他几个平台一样,因为它在技术上不是标准的一部分。看here https://cplusplus.com/reference/cstdlib/itoa/?kw=itoa了解更多信息。请注意,您必须
#include <stdlib.h>
当然你已经知道这一点,因为你想use itoa()
在 Linux 上大概在另一个平台上使用它之后,但是......代码(从上面的链接中窃取)将如下所示:
Example
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
Output:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110