でのprintfを使用して
string key = "123";
printf("Value is %s \n", key);
//出力は、次のとおりです。値が<ヌル>
ですが、私はこのようにそれを行う場合:
string key = "123";
printf("Value is: ");
printf(key.c_str());
は、私が取得:
//出力は、次のとおりです。値は、私は
printfの%sの
と間違っていたので、何123
のですか?
ありがとうございます。
文字列はchar *ではありません。 gccを使用している場合、警告を有効にすると、コンパイラは最初の呼び出しでランタイムエラーを起こします。 –
問題は解決しましたが、私は興味があります。この場合、出力はなぜ「バリュー」ですか?なぜ他の何か? (私のコンピュータ上では、コンパイラはプログラムがクラッシュすると警告しています)。偶然ですが、 'key'の値はゼロバイトを指すポインタのように見えますか? –
@MR Lister:最初のケースでは、出力はでしたが、それを入力しましたが、エディタは何とかそれを隠しました。私はちょうどそれを更新しました。 –
olidev