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

#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);
  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 <stdio.h>
#include <stdlib.h>

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;
}

关于c - 错误:在此范围内未声明 `itoa`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6462938/

10-11 19:14