我正在制作一个角色扮演游戏。当我输入代码时(如下所示)我收到此错误。我做错了什么?
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'
的类型char
与arr[pp]
的类型相匹配(这也是char
)。
"S"
(双引号)表示它是一个以 null 结尾的字符串,在展开时{'S', ' '}
。
'S'
(单引号)表示它是一个字符字符,展开时{'S'}
。
arr[X] 是示例中字符数组中的一个字符(将其视为单引号表达式,如"a")
不能将{'S', ' '}
分配给{'a'}
。
以下是有关情况的更多信息。