1

私はプログラミングを始めてc++を学ぶことを決心して以来、Javaで働いています。私がJavaで書いたものは次のようになりました。

showMessage("Hello world" + randomNumber);

そして、それはテキスト+整数またはfloatまたは何でも示しました。ただし、C++では機能しません。xCodeによるエラーメッセージ:Invalid operands to binary expression ('const char *' and 'float')

乾杯!

4

9 に答える 9

2

あなたはsprintfアントンに従って、またはもっとすることができますc++

std::stringstream ss;
ss << "Hello, world " << randomNumber;
showmessage(ss.str());

(特に代わりに使用する場合は、sprintfに問題はありませんsnprintf)。

于 2012-09-29T10:20:22.017 に答える
1
    ostringstream os;
    os<<"HelloWorld"<<randomnumber;
    string s;
    s = os.str();

string sには、文字列オブジェクトとして必要な文字列が含まれるようになりました。

于 2012-09-29T10:18:33.083 に答える
1

また、boost :: lexical_castを使用して、数値を文字列にキャストできます。これは、ほとんどの場合、最も高速な方法です。

showMessage("Hello world" + boost::lexical_cast<std::string>(randomNumber));

showMessage宣言は

void showMessage(cosnt std::string& message)
于 2012-09-29T10:18:46.853 に答える
1

複数のタイプをstd::string:に変換できる新しい関数を追加することを検討してください。

template<typename ty>
string to_str(ty t)
{
   stringstream ss; ss << t;
   return ss.str();
}

使用法:

"Hello World " + to_str(123)
于 2012-09-29T10:19:07.063 に答える
0

クラスを定義しSます。次に、

showMessage( S() << "Hello world" << randomNumber );

私はSSOのためにクラスを何度もコーディングしましたが、それを作成するのは良い練習です。したがって、ソースコードを提供しません。

StringWriter合理的にそれまたはそのようなものを呼び出すことができ、次にtypedef関数呼び出しでより簡潔なコードのためにを使用することができることに注意してください。

于 2012-09-29T10:34:52.987 に答える
0

cスタイルの答えが良いかどうかはわかりませんが、cocos2d-xの質問ですでに答えています。

Cocos2d-XC++で文字列の一部として整数を使用してCCLabelTTFを設定しようとしています

于 2012-09-29T11:39:23.017 に答える
0

C ++ 11の場合:

showMessage("Hello world" + std::to_string(randomNumber));
于 2012-09-29T11:47:38.513 に答える
-1

代わりにchar*に印刷する必要があります。

あなたは次のようなことをすることができます

char* tempBuffer = new char[256];

sprintf_s(tempBuffer, 256, "Hello world %d", randomNumber);

showMessage(tempBuffer);
于 2012-09-29T10:13:23.890 に答える
-1

C ++では、文字列とプリミティブを連結する標準的な方法は、を使用することstringstreamです。これは、Javaと同じ機能(およびもう少し)を満たしStringBuilderます(もちろん、そのAPIは異なります)。ただし、使い慣れている場合はcout問題ありません。

例えば。

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main () {
  stringstream ss;
  ss << "Some string - " << 124; // build string    
  string str = ss.str(); // extract string

  cout << str << endl;
  return 0;
}

stringstreamのクイックリファレンスhttp://www.cplusplus.com/reference/iostream/stringstream/stringstream/

于 2012-09-29T10:26:26.337 に答える