2013-03-27 211 views
-1

所以,我的數組是這樣的:打印輸出字符串

string links[26][4]; 
links[0][0] = 'A'; 
links[0][1] = 'WOL-LA-CHEE'; 

如果我嘗試打印讓我們說 'WOL-LA-CHEE' 是這樣的:

COUT < <鏈接[0] [1]

我的輸出是這樣的:

Ë

我做錯了什麼?

+0

'WOL-LA-CHEE''是一個多字符文字。你想要一個字符串文字。 – chris 2013-03-27 13:42:52

回答

2

將字符串放在雙引號中。 "WOL-LA-CHEE"。單引號聲明一個字符常量,在這種情況下它的值是未指定的。

5

如果您在單引號之間放置文本,則表示字符文字。由於std::string的複製構造函數是charconst char *,因此它適用於一個字符,但它對於多個字符不起作用。您很可能希望把雙引號之間的字符串:

links[0][1] = "WOL-LA-CHEE"; 

Stuff to read about multicharacter literals.

+0

謝謝,它工作。 – paradajz 2013-03-27 14:01:44

2

'WOL-LA-CHEE'是一個多字符常量。它具有實現定義的值,並且是int。看來你想要一個字符串文字來代替:

links[0][0] = "A"; 
links[0][1] = "WOL-LA-CHEE"; 

分配'A'以前工作,因爲這是一個正常的字符文字,且類型charstd::string的負載爲operator=,需要char