如何创建具有多个值的多个变量

时间:2020-06-02 03:43:20

标签: c++ struct

我正在制作一个游戏,用户必须阻止人们侵入他们公司的数据库/安全性。

当前,我有一个变量int threats;,可以为其分配一个值。这行不通,因为我需要具有自己类型的多个威胁,例如DDos或恶意软件,并且它们还需要名称,例如$ DDoSThreat%。

这已经杀死我好几个星期了,所有帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您本可以使用std::vector<>使用单个变量来存储多种结构类型。

查看以下内容:

#include <iostream>
#include <vector>

struct Malware {
    std::string name;
    bool danger;
};

void getMalwareDetails(Malware); // parameter: struct

int main(void) {
    std::vector<Malware> malware; // HERE'S WHAT I'M TALKING ABOUT
    Malware mTemp; // for temporary
    char ask;

    do {
        std::cout << "Malware name and is that danger (1/0)? : ";
        std::cin >> mTemp.name >> mTemp.danger;

        malware.push_back(mTemp); // adds the info to struct

        std::cout << "Add more? (Y/n): ";
        std::cin >> ask;

    } while (ask == 'Y' || ask == 'y');

    for (int i = 0; i < malware.size(); i++)
        getMalwareDetails(malware[i]); // get the struct info

    return 0;
}

void getMalwareDetails(Malware m) {
    std::cout << "Name: " << m.name << " Danger?: " << m.danger << std::endl;
}

创建一个struct,使用std::vector<STRUCT_NAME>,在每次迭代中将struct值添加到vector变量中,然后最后显示它们。同样,您可以为DDos使用一个以上的结构。

示例输出

Malware name and is that danger? : $DDoSThreat% 1 // --- INPUT
Add more? (Y/n): y
Malware name and is that danger? : Trojan 1
Add more? (Y/n): y
Malware name and is that danger? : Google 0
Add more? (Y/n): n
Name: $DDoSThreat% Danger?: 1 // --- OUTPUT
Name: Trojan Danger?: 1
Name: Google Danger?: 0