我正在尝试将一个整数转换为字符并写入文件,使用以下代码:
fputc(itoa(size, tempBuffer, 10), saveFile);
我收到了以下警告和信息:
警告:itoa的声明是隐式的
undefined reference to '_itoa'
我已经包含了stdlib.h,并使用以下编译选项进行编译:
gcc -Wall -pedantic -ansi
任何帮助都将不胜感激,谢谢。
我正在尝试将一个整数转换为字符并写入文件,使用以下代码:
fputc(itoa(size, tempBuffer, 10), saveFile);
我收到了以下警告和信息:
警告:itoa的声明是隐式的
undefined reference to '_itoa'
我已经包含了stdlib.h,并使用以下编译选项进行编译:
gcc -Wall -pedantic -ansi
itoa
不是标准库的一部分。我怀疑要么-ansi
阻止你使用它,要么根本不可用。
我建议使用sprintf()
。
如果你采用c99标准,可以使用更安全的snprintf()
。
char buffer[12];
int i = 20;
snprintf(buffer, 12,"%d",i);
20
可以很好地适应于char[10]
,而这也是OP使用的缓冲区大小。但是,是的,一个带符号的32位整数需要char[12]
来处理符号和\0
。 - Brian Roachitoa
是未知的:如果此函数在您的系统上存在,则缺少声明它的头文件。编译器会假设它是一个带有不特定数量参数并返回警告:隐式声明 'itoa'
int
的函数。说明加载器也没有在任何已知库中找到这样的函数。对 '_itoa' 的未定义引用
itoa
。