sprintfで間違った書式の文字列を使用すると疑いがあります。たとえば%fが整数の書式指定子として使用されているとします。暗黙の変換を行わないのはなぜですか? 次のプログラムを検討してください。sprintfで間違った書式の型を追加する
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
int i = 0;
char temp[50];int a = 1;
sprintf(temp, "%f",a);
puts(temp);
return 1;
}
*間違った書式文字列がsprintf *で使用されているときに疑問があります。*これは未定義の動作です。これを反省する必要はありません。 – PaulMcKenzie
これは 'C standart library'です。 'cout'を使う - それは自動的に型を検出し、書式指示子を必要としない – fnc12
' cout'は多くのユースケースで使いやすいものではない(例えば、数値やポインタを '。'パディング)。加えて文字列には印刷されません。その場合、文字列ストリームが必要になります。 – Dennis