这很奇怪.itoa();似乎创造了一个无限循环.
for(int i = 0; i < 10; i++)
{
char buffer[1];
itoa(i, buffer, 10);
std::cout << buffer;
}
Run Code Online (Sandbox Code Playgroud)
为什么它会这样做呢?我尝试使用不同的变量i,没有变量的数值(即itoa(1, buffer, 10);),它仍然在无限循环中结束.我试图谷歌没有太大的成功,我在这里找到了一个旧邮件.我使用Windows XP 32位和Code :: Blocks(带GCC)作为编译器.
有谁知道什么是错的?提前致谢.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if(argc != 2)
return 1;
if(!atoi(argv[1]))
printf("Error.");
else printf("Success.");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我输入低于或高于零值的参数时,我的代码有效.
[griffin@localhost programming]$ ./testx 1
Success.
[griffin@localhost programming]$ ./testx -1
Success.
[griffin@localhost programming]$ ./testx 0
Error.
Run Code Online (Sandbox Code Playgroud)
为什么不起作用?