当我编译我的C++代码avast认为它是一种病毒

问题描述:

我第一次编译并运行我的程序时,在开发控制台时,我的电脑开始滞后,它在我的桌面上创建了一堆.tmp文件,名称如trzFE47.tmp和我的电脑开始滞后我不得不关闭我的电脑我甚至用任务管理器检查后台进程的东西可疑,但我什么都没发现,所以当我重新启动我的电脑时,我再次编译我的.cpp程序avast给了我一个警告说可疑物品检测到继承人我的代码当我编译我的C++代码avast认为它是一种病毒

#include <iostream> 
#include <string> 
#include <cstdlib> 
#include <ctime> 
#include <windows.h> 
#include <stdio.h> 
#include <tchar.h> 
using namespace std; 

int main() { 
    int l; 
    int a; 
    int b; 
    int c; 
    Sleep(3000); 

    srand(time(0)); 
    l = 1+rand()%6; 
    a = 1+rand()%6; 
    b = 1+rand()%6; 
    c = 1+rand()%6; 
    cout << a << endl << b << endl << c << endl; 
    if (a==b&& b==c&&c==a){ 
     int v; 
     cout << "you win"; 
     cin >> v; 
    }else{ 
     cout << "try again?"; 
     string z; 
     cin >> z; 
     if (z == "yes"){ 
      main(); 
     } 
    } 

    return 0; 
} 
+2

不能调用的main()在程序中。 UB。 – doug

+1

根据规范你不能调用main(),但实际上,至少GCC编译器会让你这样做。快速浏览一下,这会导致很多递归以及相关的堆栈使用情况等。也许avast会将它视为消耗过多资源的东西?是否有可用的avast日志输出? – roelofs

+0

尽量不要'使用命名空间标准;' – 2016-08-01 02:49:44

Avast倾向于认为它以前没有看到任何程序是“可疑”。通常它会“扫描”程序,没有找到任何东西并让你继续执行。对于大多数防病毒系统,将您编译代码的文件夹添加到exclusion list是个好主意。

A面不是你的程序,并且指出,你can't call main()

+0

我想重新启动我的功能,但不使用系统(“start program.exe”) –

+3

我会建议编写一个单独的函数,并让主函数多次运行,而不是尝试再次调用'main()' – Assimilater

+2

@ RobloxMan225对于你所要求的问题,这是一个完全不同的问题,并且本站有大量关于“在用户决定退出之前运行程序”的信息 – Tas