c > c++ 文字列の作成

・_stprintf_s sprintf_s | swprintf_s :unicode


使用例

TCHAR cbuf[200];
_stprintf_s(cbuf,TEXT("INSERT INTO table1 (class,c1,c2,c3,c4,t1,t2,t3) VALUES (%d,%f,%f,%f,%f,%f,%f,%f)"),
	(int)datareader.data.at(i).at(0),
	datareader.data.at(i).at(1),
	datareader.data.at(i).at(2),
	datareader.data.at(i).at(3),
	datareader.data.at(i).at(4),
	datareader.data.at(i).at(5),
	datareader.data.at(i).at(6),
	datareader.data.at(i).at(7)
);

dprintf(TEXT("%s\n"),cbuf);

注意点
%dにたいして(int)datareader.data.at(i).at(0)とdouble型の変数は書式にあわせてキャストしないとエラーが出る
作成する文字列に対してバッファが小さいとエラーが出る。 上ではcbuf[100]だと不足するためエラーが出る

実行結果
  • エラー

  • 正常
INSERT INTO table1 (class,c1,c2,c3,c4,t1,t2,t3) VALUES (0,1.867840,0.638700,0.186060,0.468961,-2.860810,2.224490,-2.002330)
最終更新:2007年11月26日 23:11
添付ファイル