这是我使用itoa()函数的代码,似乎无效。让我说清楚,我正在研究C.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
int i,j;
for(i = 0;i<= 4; i++)
{
for (j = 0; j <= 9; j++)
{
//printf("Hi\n");
char fileName[10]="A";
char append[2];
itoa(i,append,10);
strcat(fileName,append);
itoa(j,append,10);
strcat(fileName,append);
printf("i=%d j=%d\n", i,j);
printf("%s\n", fileName);
//FMS()
}
//printf("Anuj=%d\n",i );
}
}
RC4Attack.c :(。text + 0x5e):对itoa'
RC4Attack.c:(.text+0x8e): undefined reference to
itoa&#39;的未定义引用
collect2:错误:ld返回1退出状态
答案 0 :(得分:1)
标准C库中没有itoa。相反,请使用sprintf。
sprintf(string_value, "%d", integer_value);
修改强>
使用snprintf
来防止缓冲区溢出。
snprintf(string_value, max_size, "%d", integer_value);
答案 1 :(得分:0)
两周前我遇到过类似问题 我用sprtinf而不是itoa解决了它。
http://www.cplusplus.com/reference/cstdio/sprintf/
看起来像这样吗?
include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
int i,j;
for(i = 0;i<= 4; i++)
{
for (j = 0; j <= 9; j++)
{
//printf("Hi\n");
char fileName[10]="A";
char append[2];
sprintf(filename,"%s%d",fileName,i);
sprintf(filename,"%s%d",fileName,j);
printf("i=%d j=%d\n", i,j);
printf("%s\n", fileName);
}
}
}
答案 2 :(得分:0)
我可以为您提供2种解决方案:
1。)您可以尝试使用不同的c编译器,其中一些可能有效
2。)您可以自己轻松编写此功能。它只是一小段代码(见以下链接) http://en.wikibooks.org/wiki/C_Programming/C_Reference/stdlib.h/itoa
此外,您可以使用有关此主题的前一个主题,这可能对您的情况有所帮助: Where is the itoa function in Linux?
问候 的Marius