文字が変換されない。

[戻る]
VC 2004/04/30(金) 14:01:34
お世話になっています。
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 '/';
とか。



何が悪いのでしょうか?

επιστημη [E-Mail] [HomePage] 2004/04/30(金) 14:06:38
sprintfの戻り値が何であるかご存知ですか?

アイススケーター 2004/04/30(金) 15:07:11
まずsprintfの仕様をよく読みましょう

PreHeaderの代わりに&DCh[L2][1]を入れてみれば

但し、VCさんの考えている処理が我々ではまったく不明です。
このまま作っても多くのバグが残るでしょう。

普通PreHeaderのところにDCh[L2]とすればいいのですが
なぜDCh[L2][1]としているのか???

VC 2004/04/30(金) 15:56:46
失礼しました。

HELPで見ると、
sprintf 関数は、buffer に格納した文字数を返します。
でした。

sprintf(DCh[L2][1],"%d",kc[L2]);
に変えてうまくいきました。

επιστημη [E-Mail] [HomePage] 2004/04/30(金) 16:02:51
> sprintf(DCh[L2][1],"%d",kc[L2]);
> に変えてうまくいきました。

そんなバカな。 型がデタラメやんか。

kara 2004/04/30(金) 16:18:00
> そんなバカな。 型がデタラメやんか。
おもわず笑ってしまった

おそらく
sprintf(DCh[L2],"%d",kc[L2]);
と書きたかったのだろうと思われますが・・・

もしかしたら
sprintf(&DCh[L2][1],"%d",kc[L2]);
もしくは
char*    DCh[3][134];
だったとか・・・

VC 2004/04/30(金) 21:50:03
申し訳ございません。

sprintf(DCh[L2],"%d",kc[L2]);
でした。

VC 2004/04/30(金) 21:50:24
[[解決]]
以上

古いスレッドには追加発言できません。