-1

したがって、私の配列は次のようになります。

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

そして、印刷しようとすると、次のように「WOL-LA-CHEE」としましょう。

cout << リンク[0][1]

私の出力は次のようになります。

私は何を間違っていますか?

4

3 に答える 3

5

テキストを一重引用符で囲んだ場合、それは文字リテラルを示します。std::stringfromcharとのコピー コンストラクターがあるためconst char *、これは 1 つの文字に対しては機能しますが、複数の文字に対して行うと思われることは行いません。おそらく、文字列を二重引用符で囲みたいでしょう:

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

複数文字リテラルについて読むべきもの。

于 2013-03-27T13:42:53.980 に答える
2

文字列を二重引用符で囲みます。"WOL-LA-CHEE". 単一引用符は文字定数を宣言します。この場合、その値は指定されていません。

于 2013-03-27T13:42:41.430 に答える
2

'WOL-LA-CHEE'複数文字リテラルです。実装定義の値を持ち、int. 代わりに文字列リテラルが必要なようです:

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

これは通常の文字リテラルで type があるため、割り当て'A'は以前は機能していましたcharstd::stringのオーバーロードがoperator=ありcharます。

于 2013-03-27T13:43:27.683 に答える