1. ホーム
  2. c++

[解決済み] sprintfのようなstd::stringの書式設定

2022-03-18 12:20:05

質問

をフォーマットする必要があります。 std::string sprintf を作成し、それをファイルストリームに送信します。どうすればよいのでしょうか?

どのように解決するのですか?

直接はできません。なぜなら、基礎となるバッファへの書き込みアクセスがないからです(C++11までは、Dietrich Eppの コメント ). まずc-stringでやって、それをstd::stringにコピーする必要があります。

  char buff[100];
  snprintf(buff, sizeof(buff), "%s", "Hello");
  std::string buffAsStdStr = buff;

でも、なぜ文字列のストリームを使わないのか、よくわからないのですが?何か特別な理由があるのでしょうか?

  std::ostringstream stringStream;
  stringStream << "Hello";
  std::string copyOfStr = stringStream.str();