main.cpp|15|错误:从 'const char*' 到 'char' 的转换无效 [-允许]|制作游戏时出错



我正在制作一个角色扮演游戏。当我输入代码时(如下所示)我收到此错误。我做错了什么?

main.cpp|15|错误:从"常量字符*"到"字符"的转换无效 [-允许]|

#include <iostream>
#include <stdio.h>
#include <string>
#include <windows.h>
using namespace std;
int mainLoop()
{
    char arr[4] = {'x', 'x', 'x', 'x'};
    int pp = 1;
    bool end = false;
    string inp;
    arr[pp] = "S";
    while(end == false)
    {
        cout << arr << endl;
        cout << ">>: " << endl;
        cin >> inp;
        if(inp == "move")
        {
            pp++;
        }
    }
}
int main()
{
    mainLoop();
    return 0;
}

编辑:

谢谢! 但是现在我让它将旧的 pp(玩家位置)保留为 S。我尝试制作一个新的变量 ppold 并使其将 pp-1 更改为 x,但没有任何反应。

arr[pp] = "S";  //incorrect

应该是

arr[pp] = 'S';  //correct

"S"的类型是char[2],不能转换为char这是arr[pp]的类型。 但是'S'的类型chararr[pp]的类型相匹配(这也是char)。

"S"

双引号)表示它是一个以 null 结尾的字符串,在展开时{'S', ''}

'S'(单引号)表示它是一个字符字符,展开时{'S'}

arr[X] 是示例中字符数组中的一个字符(将其视为单引号表达式,如"a")

不能将{'S', ''}分配给{'a'}

以下是有关情况的更多信息。

最新更新