- 締切済み
キャストについてなんですが…
今、QTを利用してLinux上でC++でプログラミングをしているのですが、QSring型の文字列をchar *型 にキャストできないで困っています。 ご存知の方がいらっしゃったらアドバイスでも良いので教えてください。 お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
関連するQ&A
- C言語のキャスト
キーボード操作で見たい画像を切り替えるというプログラムを作成しようとしているのですがエラーが起きてしまい出来ません。 例えば、キーボードで「a」と押せばAの画像が出るように文字列にAの画像のファイル名を代入して画像を表示させようと思ったのですが、 const char [2]' から 'char' に変換できません。 この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。 というエラーが出てきます。 キャストという言葉は聞いたことがあるのですが、よくわかりません。 だれか教えてください。お願いします。
- ベストアンサー
- C・C++・C#
- char型の文字列をウィンドウに表示させる。
c言語のAPIを用いてプログラミングをしているものです。 char*型の文字列をウィンドウに表示させるにはどうしたらいいでしょうか。できれば、例を挙げて教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 関数の引数をvoid*でキャストする
最近見かけたCのプログラムで、関数の引数の型は void* なのですが、その関数を使うときに 引数をvoid*でキャストしていました。 例えば、 func ( (void*) p ); こういうことです。 私の知っている知識では、 void* と 任意の型のポインタは キャストなしに相互に代入可能です。 関数の引数でも、キャストは要らないものだと思っていました。 そうすると、引数を void* でキャストするのは無意味だと思うのですが、・・・ 違うのでしょうか。処理系によるとか。 逆に、関数の引数の型がchar*などで、渡すものが void* のときはどうなのでしょうか。 下のプログラムは、関数byte_orderの引数の型はvoid*ですが、int型へのポインタ( &a )を設定しています。私の環境では、コンパイルエラーも警告もないし、動作も正常です。 #include <stdio.h> #include <string.h> void byte_order(void *vp) { char char_array[4]; strncpy(char_array, vp, 4); printf("出力します:%x %x %x %x\n", char_array[0], char_array[1], char_array[2], char_array[3]); } int main(void) { int a = 0x12345678; byte_order(&a); return 0; } このプログラムは単なる一例であって、質問はバイトオーダに関するものではありません。 また、C言語の質問であって、C++ではありません。
- ベストアンサー
- C・C++・C#
- 文字列をint型にキャスト
文字列をunsigned int型キャストし,それをある演算をして 正の整数に変換したいのですがどうすればいいですか? int ca(char *s) { unsigned int h; int key; h = (unsigned int)s; //文字列を演算し 0~254 の整数にする// key = h % 254; return key; } int main() { char moji[32]; moji = "moji"; unsigned int c; c = ca(moji); }
- ベストアンサー
- C・C++・C#
- キャスト変換について
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);
- ベストアンサー
- C・C++・C#
- C言語のキャストについて
C言語のキャストについて こんばんわ、質問です。 『キャスト』と言われる型を合わせるルールがあると思います。 あれはコンパイラに 「違う型の変数への代入だけど、これは意図したことですよ」 ってことを分かってもらうための手段という認識でよろしいでしょうか? コンパイル後、実行時には変数の型情報は使われない(残ってない?)と 思っていますが、その道を極めている方、教えてください。 キャストが何に使われるのか知りたいです。
- ベストアンサー
- C・C++・C#
- C#のキャスト?
C#でのキャスト(?)で困ってます。 うまく説明できないので、下にCっぽい処理を書きます。 struct _hoge{ int i; char c[4]; double d; }; void f(){ BYTE data[16]; stream.read(data); // 何かから16Byte読み込み _hoge *st = (_hoge*)data; // ←ここ TRACE("%d,%c,%f",data->i,data->c[0],data->d); } //(結構いいかげんです) 上記処理のように、BYTEの配列で取得したデータを「struct _hoge」の型にキャストしてそれぞれの要素を取り出す、ということをC#で実現したいのですがMSDNやWebを結構探したのですがわかりませんでした。(何で検索していいのかがわかりませんでした・・・) 実現方法(もしくは検索キーワード)がわかる方、教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- LPCWSTRとchar
質問なのです・・・ 現在、私は[Visual Stdio.Net 2005]を使って、C++のプログラミングをしようと思いまして、今日参考書を見てやってみたのですが、 charの配列を使って、文字列を格納しそれを使おうとしたら、LPCWSTRのキャストが必要というエラーがでました。 参考書だと普通に通るらしいのですが・・・Visual Stdio.Net 2003と2005の違いなのでしょか?わかる方教えていただけませんでしょうか??
- ベストアンサー
- C・C++・C#
お礼
今やろうとしていることは、const char*でも構わないです。 説明不足でごめんなさい。 確かに出来そうですが、何故か QString::latin1()がコンパイルを通りません…。 あとlocal8bit()とutf8()も試してみましたが、QCStringを利用するための<qcstring.h>が見つからないようで、エラーが返ってきてしまいます。 ありがとうございました。 もし何か他に分かったら書き込みお願いします。