0

RPGを作っています。コード(以下に示す)を入力すると、このエラーが発生します。私は何を間違っていますか?

main.cpp|15|エラー: 'const char*' から 'char' への無効な変換 [-fpermissive]|

#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 に変更しようとしましたが、何も起こりません。

4

2 に答える 2

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

する必要があります

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

のタイプ"S"は、のタイプにchar[2]変換できません。ただし、のタイプはのタイプと一致します(これも)。chararr[pp]'S'chararr[pp]char

于 2012-08-17T10:01:52.080 に答える
2

"S"(二重引用符) は{'S', '\0'}、展開されたときのヌル終了文字列であることを意味します。

'S'(一重引用符) は{'S'}、展開されたときの char 文字であることを意味します。

arr[X] は、例の文字配列内の文字です (「a」のような単一引用符式と考えてください)。

{'S', '\0'}に割り当てることはできません{'a'}

状況の詳細については、こちらをご覧ください。

于 2012-08-17T10:06:26.243 に答える