我在C中有点生疏,但我遇到了这个奇怪的问题:
我写了这个程序:
#include <stdio.h>
main()
{
int n;
n=1;
while (n>0)
{
puts("Write a number: ");
scanf(" %d",&n);
printf("This is the number you wrote: %d\n", n);
}
}
Run Code Online (Sandbox Code Playgroud)
显然,绝对没有语法错误,并且我能理解,也没有任何编译错误.它完美地编译和构建.现在,如果我切换这一行:
puts("Write a number: ");
Run Code Online (Sandbox Code Playgroud)
这一个:
printf("Write a number: ");
Run Code Online (Sandbox Code Playgroud)
它编译时没有错误,但是当编译对象启动时,它会立即停止并弹出反病毒警告,说它识别出特洛伊木马.在得出任何结论之前,我已经多次构建它,在得到相同的消息后,我在virustotal.com上扫描了它,这就是结果.
嗯,我知道puts实际上比printf更正确的目标,但它仍然应该工作得很好......
这有什么不对?
我正在使用AVG反病毒和Pelles C进行编译.
提前致谢.