2016-07-18 7 views
-2

誰かがC++でこれら2行のコードの違いを説明できますか?誤ったIOStreamを使用したC++での文字列操作/エラー

入力:

cout << s1.size() + " " + s2.size() << endl; 

出力:私は

string s1 = 'abcd' 

string s2 = 'ef' 

最初の入力を予想よりも出力が非常に異なってもらいます。 D

第二の入力:正しい

入力:

cout << s1.size() << " " << s2.size() << endl; 

出力:4 2

私はそれをコンパイルし、課題のいずれかのHackerRankサーバを、それを逃げたとしませんでしたなぜ結果が異なるのか確かめてください。あなたが暗黙的にconst char*std::size_t変数を追加します(コード内すなわち" ")および所望の結果を達成することはできません

+0

投稿する[MCVE]問題を再現してください。あなたの質問は役に立たない。 –

+1

最初の整数加算を使用しています...どのような結果が期待されますか? :) –

+0

答えが必要な場合は、コードを投稿してください。あなたが投稿したことは不完全であり、達成しようとしていることを理解することは非常に難しいです。 – kadina

答えて

0

、あなたは何をする必要があります:

std::cout << std::to_string(s1.size()) + " " + std::to_string(s2.size()) << std::endl; 

(すなわち、第1文字列にstd::size_t値を変換スペースで連結します)。

+0

私はスクリプトを作成するためにPythonを使い続けています。コンパイラーは、printステートメント内のさまざまなデータ型を理解するために使用されます。 – Dragon