- 締切済み
キャストについてなんですが…
今、QTを利用してLinux上でC++でプログラミングをしているのですが、QSring型の文字列をchar *型 にキャストできないで困っています。 ご存知の方がいらっしゃったらアドバイスでも良いので教えてください。 お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
回答No.1
Qtはほとんど知りませんが、ドキュメントを見る限り、char*に直接キャストする方法はなさそうです。 多バイト文字を使わないのであれば、QString::latin1()が使えそうですし、多バイト文字を使うなら、QString::utf8()またはQString::local8bit()でQCStringを取得し、それからconst char*に変換することができそうです。 いずれも得られるのはconst char*であってchar*ではありません。char*にするにはconst_castが必要ですが、char*に変換できたとしても、書き換えるのは問題があると思います。
お礼
今やろうとしていることは、const char*でも構わないです。 説明不足でごめんなさい。 確かに出来そうですが、何故か QString::latin1()がコンパイルを通りません…。 あとlocal8bit()とutf8()も試してみましたが、QCStringを利用するための<qcstring.h>が見つからないようで、エラーが返ってきてしまいます。 ありがとうございました。 もし何か他に分かったら書き込みお願いします。