2016-08-01 40 views
0

我第一次編譯並運行我的程序時,在開發控制檯時,我的電腦開始滯後,它在我的桌面上創建了一堆.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

回答

4

Avast傾向於認爲它以前沒有看到任何程序是「可疑」。通常它會「掃描」程序,沒有找到任何東西並讓你繼續執行。對於大多數防病毒系統,將您編譯代碼的文件夾添加到exclusion list是個好主意。

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

+0

我想重新啓動我的功能,但不使用系統(「start program.exe」) –

+3

我會建議編寫一個單獨的函數,並讓主函數多次運行,而不是嘗試再次調用'main()' – Assimilater

+2

@ RobloxMan225對於你所要求的問題,這是一個完全不同的問題,並且本站有大量關於「在用戶決定退出之前運行程序」的信息 – Tas

相關問題