アプリ版:「スタンプのみでお礼する」機能のリリースについて

VineLinuxでc言語を使って、カメラ画像から取得した物体の座標を別のPCのサーバープログラムにソケット通信で送信したい。
座標の変数がfloat型で格納されていて、そのX値とY値をcharでキャストして一つの変数に繋げてコード化し
たいんですが、キャストの段階で数字を文字にできなくて
数字がなにかの文字やコードになってしまうので困ってます。
int x;
int y;

x = (char)Tbl2[1].X;
y = (char)Tbl2[1].Y;

printf("j - x=%c y=%c\n",x,y);

A 回答 (5件)

そもそも、具体的に何がどうなってほしいのか、そのあたりから把握できていないように思います。



例えばfloat型の111.222と333.444があるとき、それはcharのどういう値になるような変換をなさりたいんでしょうか。1234000と5678000だったら?
    • good
    • 0
この回答へのお礼

参考にします

お礼日時:2005/07/29 19:04

xとyがASCII文字コードでなく数値なのに、printfに%cでつないだので


制御キャラクタに化けたのでは?
    • good
    • 0
この回答へのお礼

参考にします

お礼日時:2005/07/29 19:05

単にfloatを文字列にしたいということだったら


sprintfを使うといいと思います。
勘違いコメントだったらすみません
    • good
    • 0
この回答へのお礼

できました。ありがとうございます

お礼日時:2005/07/29 19:05

少し高度な話になるかもしれませんが、float型のデータはそのまま転送してしまいましょう。



struct Point{
float x,y;
};
において、

struct Point pos;
pos.x=○○;
pos.y=□□;
とあったら、
send(s,&pos,sizeof(pos),m);
などとするのが一般的です。
    • good
    • 0
この回答へのお礼

参考にします

お礼日時:2005/07/29 19:06

もしややりたいことは



printf("j - x=%g y=%g\n", x, y);

ですか?
    • good
    • 0
この回答へのお礼

そうです、質問の仕方が間違っていました。
すみません。

お礼日時:2005/07/29 19:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!