お世話になっています。
Windows2000下VC++6で使っています。
char DCh[3][134];
int L2 = 0;
char PreHeader[2];
int kc[3];
for (L2=0;L2<3;L2++)
DCh[L2][1] = sprintf(PreHeader,%d,kc[L2]);
において、
Preheader
に入って来るのと同じ、文字を
DCh[L2][1]
に入れたいのですが、同じものが入って来ません。
たとえば、
PreHeader = '5';
のところが、
DCh[L2][1] = 1 '/';
とか。
何が悪いのでしょうか?
sprintfの戻り値が何であるかご存知ですか?
まずsprintfの仕様をよく読みましょう
PreHeaderの代わりに&DCh[L2][1]を入れてみれば
但し、VCさんの考えている処理が我々ではまったく不明です。
このまま作っても多くのバグが残るでしょう。
普通PreHeaderのところにDCh[L2]とすればいいのですが
なぜDCh[L2][1]としているのか???
失礼しました。
HELPで見ると、
sprintf 関数は、buffer に格納した文字数を返します。
でした。
sprintf(DCh[L2][1],%d,kc[L2]);
に変えてうまくいきました。
> sprintf(DCh[L2][1],%d,kc[L2]);
> に変えてうまくいきました。
そんなバカな。 型がデタラメやんか。
> そんなバカな。 型がデタラメやんか。
おもわず笑ってしまった
おそらく
sprintf(DCh[L2],%d,kc[L2]);
と書きたかったのだろうと思われますが・・・
もしかしたら
sprintf(&DCh[L2][1],%d,kc[L2]);
もしくは
char* DCh[3][134];
だったとか・・・
申し訳ございません。
sprintf(DCh[L2],%d,kc[L2]);
でした。
以上