C++如果元素等于 X 则为数组赋值
C++ assigning value to array if element is equal to X
我是C++新手,我一直在尝试制作一个简单的游戏。我想要一个玩家可以应用于敌人的状态效果系统,所以我制作了一个可以容纳 5 个元素的字符串数组,比如"燃烧"或"中毒"等。然而,当我对此进行测试时,它似乎总是将状态效果(在本例中为刻录(应用于第一个和第二个状态"插槽"。我希望它仅适用于我的第一个空插槽。我把这部分代码拿出来,从for循环扩展到if语句,这次我输出了statusEffect的值,它给了我0x1000020f0。我甚至不知道那是什么。
这是我的代码,如果有帮助,我正在研究 Xcode。
int statusEffectDuration[5] = {0, 0, 0, 0, 0};
string statusEffect[5] = {"NONE", "NONE", "NONE", "NONE", "NONE"};
// Function for applying status effects
void applyStatusEffect(string appliedEffect, int statusDuration) {
if (statusEffect[0] == "NONE") { // If first status effect is nothing then changes first status to "EFFECT"
statusEffect[0] = appliedEffect;
statusEffectDuration[0] = statusDuration;
}
else if (statusEffect[1] == "NONE") { // Same as first, but if second status is nothing then changes second status to "EFFECT"
statusEffect[1] = appliedEffect;
statusEffectDuration[1] = statusDuration;
}
else if (statusEffect[2] == "NONE") { // Third
statusEffect[2] = appliedEffect;
statusEffectDuration[2] = statusDuration;
}
else if (statusEffect[3] == "NONE") { // Fourth
statusEffect[3] = appliedEffect;
statusEffectDuration[3] = statusDuration;
}
else if (statusEffect[4] == "NONE") { // Fifth
statusEffect[4] = appliedEffect;
statusEffectDuration[4] = statusDuration;
}
else if (statusEffect[5] == "NONE") { // Sixth
statusEffect[5] = appliedEffect;
statusEffectDuration[5] = statusDuration;
}
}
int main() {
applyStatusEffect("EFFECT", 5); // "EFFECT" is the effect that is given, 5 is duration of effect
// Displays status effect and effect duration
cout << statusEffect; // Displays 0x1000020f0
cout << "n";
cout << statusEffectDuration; // Displays 0x1000020f0
return 0;
}
编辑:我很笨。我正在打印地址。但是它为前两个空白区域而不是一个空格提供值的问题就是我发布此内容的最初原因。
您正在告诉计算机打印数组的地址。
要打印数组的内容,您需要使用循环:
for (i = 0; i < 5; ++i)
{
cout << statusEffect[i] << "n";
}
相关文章:
- 在 Arduino 中为 2D 指针数组赋值
- 我无法为 2D 数组赋值
- 如何在C++中初始化值,然后稍后为uint32_t数组赋值
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- 为两个动态数组赋值
- 在类的构造函数中为常量动态大小的数组赋值
- 为结构灵活数组赋值
- 如何在opencv中为三维数组赋值
- 如何从主函数为对象数组赋值
- 数组赋值无法使用指针语法
- C++类中的静态数组赋值
- 多维字符串数组赋值 C++
- 错误:从初始值设定项列表向数组赋值;在ubuntu 1004上工作但在14.04上不工作的代码
- 用于循环数组赋值的C++.正在返回垃圾邮件
- 多维数组赋值
- 无法在c++中为全局数组赋值
- C++程序在为指针的2D数组赋值后崩溃
- 给指针数组赋值
- c++将整型数组赋值给大小相同的空整型数组
- 将数组赋值给派生对象