所以,我正在编写控制台游戏作为我在 C++ 上的第一个项目,我想做的是实现外观功能。这是它的作用:
获取当前坐标
从二维字符串数组中读取描述
描述
但我不能让那个二维字符串数组工作。
string zoneid[100][100];
zoneid[1][1] = "text";
cout << "You see " << zoneid[1][1] << endl;
它给了我错误 - 在第一行的 '=' 标记之前预期的构造函数、析构函数或类型转换。我试过大括号,大括号,仍然没有帮助。
谷歌搜索也没有多大帮助。
更新:这里是完整的代码,但错误仅在 zoneid[1][1] = "text";
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <stdlib.h>
#include "genlib.h"
#include "strutils.h"
#include <time.h>
#include <string>
int inventory_array[49];
int coordsX;
int coordsY;
std::string zoneid[100][100];
zoneid[1][1] = "Text";
void init_inv()
{
for (int i=0; i < 50; i++) {
inventory_array[i] = 0;
}
}
void introduce() {
cout << "Welcome to Diablo 2! "
<< endl;
}
void inventory() {
cout << endl << "Your inventory:" << endl;
for (int i = 0; i < 50; i++) {
if (inventory_array[i] != 0) {
cout << i << ". " << "something" << endl;
}
}
}
int itemRoll()
{
int item_id = 0;
item_id = (rand() % 1000);
return item_id;
}
void look(int x, int y)
{
cout << "You see " << zoneid[1][1] << endl;
}
void inputController()
{
while (true) {
cout << "Please enter command!" << endl;
string command;
getline(cin, command);
if (command == "inv") {
inventory();
}
if (command == "look") {
look(coordsX, coordsY);
}
if (command == "roll") {
for (int i=0; i < 50; i++) {
cout << itemRoll() << endl;
}
cout << itemRoll() << endl;
}
if (command == "kill") {
cout << "KILL COMMAND ACTIVATED" << endl;
}
if (command == "quit") {
cout << "FAILED TO INTERPRET" << endl;
break;
}
}
}
void ending()
{
cout << "Thanks for playing Diablo 2";
}
int main(int argc, char ** argv) {
srand(time(NULL));
introduce();
init_inv();
coordsX = 1;
coordsY = 1;
inputController();
ending();
return 0;
}
最佳答案
好的,问题来了:
int inventory_array[49];
int coordsX;
int coordsY;
std::string zoneid[100][100];
zoneid[1][1] = "Text";
此代码在文件范围内。也就是说,它不在函数中。但是
zoneid[1][1] = "Text"
是可执行代码——它需要在一个函数中。您可以将初始化程序放在
main()
中:int main()
{
zoneid[1][1] = "Text";
// ...
}
关于c++ - 字符串数组,如何使用?执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4225202/