2012-08-17 114 views
0

我正在製作一個RPG。 當我輸入代碼(如下所示) 我得到這個錯誤。 我在做什麼錯?main.cpp | 15 |錯誤:從'const char *'無效轉換爲'char'[-fpermissive] |製作遊戲時出錯

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,但沒有任何反應。

+0

男人,聽我的勸告:先學習編碼,然後開始製作遊戲。 – cubuspl42 2012-08-17 11:43:15

回答

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

應該是

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

類型的"S"char[2]這是不轉換爲char這是arr[pp]類型。但是'S'的類型是char,它與arr[pp](也是char)的類型匹配。

2

"S"(雙引號)表示它是一個以NULL結尾的字符串,展開時爲{'S', '\0'}

'S'(單引號)表示它是char字符,擴展時爲{'S'}

ARR [X]是在在你的例子(認爲它作爲一個單引號表達,如 'A')的字符陣列

一個字符不能分配給{'S', '\0'}{'a'}

Here是更多有關情況的信息。

相關問題