我遇到的问题是打印出
spelare1[i]
和函数 kopaEnheter
。我来回走了一段时间,所以问题可能出在其他地方。已四处寻找解决方案,但我的问题在错误之间反复出现。我是编码新手,正在参加为期 5 周的课程。一直在寻找答案,但我可能没有正确地看待它。我所做的就是将问题转移到函数中的其他内容或spelare1[i]
。
我已经关注这个问题太久了,所以在尝试解决这个问题时我可能会做一些疯狂的事情。
#include <iostream>
#include <string>
using namespace std;
struct Spelare {
int guld;
int soldater;
int inkomst;
int mur;
int hp;
int soldater_attackera;
int pris_soldater; // Pris för soldater 5
int pris_mur; // Pris för att laga mur 10
int pris_farm; // Pris för att bygga gårdar 10
int nyRunda;
};
struct npc {
int guldData;
int soldaterData;
int inkomstData;
int murData;
int hpData;
};
Spelare spelare1 = { 10, 0, 5, 10, 1, 0, 5, 10, 10, 0 };
class spelare1 {
public:
spelare1();
};
npc data[5];
//------------------------------------------------------------------
void kopaEnheter(struct Spelare &spelinfo, int antal) {
int totalPris = 5 * antal;
if (totalPris == spelare1.guld || totalPris <= spelare1.guld) {
spelare1.guld -= totalPris;
spelare1.soldater += antal;
cout << "Du köpte " << antal << " soldater!\n";
} else {
cout << "Du har inte tillräckligt med guld för att köpa " << antal << " soldater.\n";
}
}
//------------------------------------------------------------------
bool spel = true, program = true;
int main() {
while (program == true) {
int val;
cin >> val;
cout << "\n";
switch (val) {
program = false;
break;
default:
cout << "Ogiltigt val\n";
case 1:
while (spel == true) {
string rss[4] { " | Guld: ", "| Soldater: ", "| Inkomst: ",
"| Mur: " };
cout << " ---------------------------------------------\n";
for (int i = 0; i < 4; i++) {
cout << rss[i] << spelare1[i];
cout << "|\n ---------------------------------------------\n";
cout << "1. Köp soldater\n";
cout << "2. Laga mur\n";
cout << "3. Bygg farm\n";
cout << "4. Nästa runda\n";
cout << "5. Attackera\n";
cout << "6. Avsluta\n";
int antal;
int spelval;
cin >> spelval;
switch (spelval) {
case 1: {
cout << "Ange antal soldater du vill köpa: ";
cin >> antal;
if (antal == 0)
break;
else {
kopaEnheter(spelare1, antal);
}
}
break;
}
}
}
}
}
我尝试过改变它,但我所做的只是在重复错误中原地踏步。它要么让我运行程序,但数字无法正确显示,或者打印 rss 错误,或者从未链接到用户的另一个数组中获取数字。
同一地点的一些错误
Expected Unqualified Id Error
No matching function for call
type 'Spelare' does not provide a subscript operator
在这里进行大胆猜测,但似乎您想将
spelare1
视为数组。但事实并非如此,编译器抱怨道。我想你想要的是这个
更换
cout << rss[i] << spelare1[i];
与
cout << rss[i];
switch (i)
{
case 0:
cout << spelare1.guld;
break;
case 1:
cout << spelare1.soldater;
break;
case 2:
cout << spelare1.inkomst;
break;
case 3:
cout << spelare1.mur;
break;
}
但可能更好的是像这段代码一样完全删除循环