错误:`itoa`未在此范围内声明

我有一个名为itoa.cpp的示例c文件,如下所示:

#include  #include  int main () { int i; char buffer [33]; printf ("Enter a number: "); scanf ("%d",&i); itoa (i,buffer,10); printf ("decimal: %s\n",buffer); return 0; } 

当我使用以下命令编译上面的代码时:

 gcc itoa.cpp -o itoa

我收到此错误:

 [root @ inhyuvelite1 u02] #gcc itoa.cpp -o itoa
 itoa.cpp:在函数“int main()”中:
 itoa.cpp:10:错误:“itoa”未在此范围内声明

这段代码有什么问题? 如何摆脱这个?

itoa不是ansi C标准,你应该避免它。 如果你真的想要使用它,那么这里有一些你自己的实现:

http://www.strudel.org.uk/itoa/

如果您需要内存字符串格式化,更好的选择是使用snprintf。 从你的例子开始:

 #include  #include  int main () { int i; char buffer [33]; printf ("Enter a number: "); scanf ("%d",&i); snprintf(buffer, sizeof(buffer), "%d", i); printf ("decimal: %s\n",buffer); return 0; } 

如果您只对sprintf或16基础感兴趣,可以使用sprintf

 sprintf(buf,"%d",i); 

查看stdlib.h。 也许_itoa而不是itoa在那里定义。