度々すみません。
またしても型変換で困っています。

CStringの値をHWNDに変換するには
どのようにすれば良いのでしょうか?

早く自分で解決できるようになりたいのですが、
他の問題もあったりしてなかなか…(爆)。
よろしくお願いします。

A 回答 (1件)

/* ATOF.C: atof、atoi、atol の各関数を使って、


* 文字列として格納されている数を数値に変換します。
*/

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
char *s; double x; int i; long l;

s = " -2309.12E-15"; /* atof のテスト */
x = atof( s );
printf( "atof 関数のテスト: 文字列: %s\t浮動小数点値: %e\n", s, x );

s = "7.8912654773d210"; /* atof のテスト */
x = atof( s );
printf( "atof 関数のテスト: 文字列: %s\t浮動小数点値: %e\n", s, x );

s = " -9885 pigs"; /* atoi のテスト */
i = atoi( s );
printf( "atoi 関数のテスト: 文字列: %s\t\t整数値 : %d\n", s, i );

s = "98854 dollars"; /* atol のテスト */
l = atol( s );
printf( "atol 関数のテスト: 文字列: %s\tlong整数値 : %ld\n", s, l );
}
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございます。

文字列内の値が16進数だったため、
nakashiさんに教えて頂いた関数を
使用できるよう修正し、無事正常に動作しました。

またしても助けていただき、助かりました。
ヒマを見つけて基本から勉強しなくちゃです(弱)。

お礼日時:2002/03/28 17:20

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qその文字ごとに変換する事はできないのでしょうか?

例えば~やサイ(動物の)と入力する時に単にやさいと
入力して変換するとどうしても野菜等の漢字にしか変換されません
まあこれは象やサイのように前後になんらかの文字をはさめば0で変換はできるのですが
長文の場合ひらがなかカタカナにしか変換されないものがたまにあります
これらを一文字あるいは二文字等に限定して変換させる事はできないのでしょうか?
つまり通常10文字中5文字単位でしか変換できないが1・2文字で変換する事は
できないか?という事です
できればマウスは使わずにキーボードだけで
分かりにくくてすいません
回答お願いします

Aベストアンサー

たぶん、これのことではないかと思いますが、

文字の変換中に、
「Shift」キーを押しながら「←」「→」キーで
変換範囲を変更できると思います。

「やさい」の場合は変換範囲を上記の方法で「や」だけに変更して、
その後「→」キーで「さい」の部分に移動(ただの移動なので「Shift」キーははなす)
して変換すればできると思います。

お試しください。

QMFCを使って、ひとつのkey(CString)から複数要素(CString)をとりだせるようなプログラムを書きたいのですが・・・。

私は現在visual C++6.0を使用して
MFCをちょこちょこ使いながらC++でプログラムを書いています。

皆さんご存知かとは思いますが
CMapStringToStringを使うと一つのKeyからひとつの要素しかとりだせません。
ひとつのKeyに対していくつか要素を追加していけるようにしたいのです。

どなたかご存知の方がいらっしゃったら教えて頂けないでしょうか?

Aベストアンサー

適当に作ってみました。

CMapStringToOb SAMap(3);

CStringArray *pVal;
pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "田中 太郎";
(*pVal)[1] = "田中 花子";

SAMap.SetAt("TANAKA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "山田 太郎";
(*pVal)[1] = "山田 花子";

SAMap.SetAt("YAMADA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "佐藤 太郎";
(*pVal)[1] = "佐藤 花子";

SAMap.SetAt("SATOU", pVal); // 要素を追加

CStringArray *pMapVal;

// 値を獲得
BOOL b = SAMap.Lookup("YAMADA", ( CObject *&)pMapVal);

printf("%s\n",(LPCSTR)pMapVal->GetAt(0));
printf("%s\n",(LPCSTR)pMapVal->GetAt(1));

適当に作ってみました。

CMapStringToOb SAMap(3);

CStringArray *pVal;
pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "田中 太郎";
(*pVal)[1] = "田中 花子";

SAMap.SetAt("TANAKA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "山田 太郎";
(*pVal)[1] = "山田 花子";

SAMap.SetAt("YAMADA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "佐藤 太郎";
(*pVal)[1] = "佐藤 花子";

S...続きを読む

QVistaで、誤変換や変換できないものがある

ここ最近、Windows Vista標準ので、
誤変換や文やフクスウの変換ができなくなってます。
普通の変換すらできない言葉もでてきてます。
今も2行目の「ふくすう」が変換できません。

発覚した変換できないもの(カナ変換しかできないもの)
こめんとらん=コメントラン
いか=イカ
いがい=イガイ
ふくすう=フクスウ
かいとう=カイトウ
しつもん=シツモン
おおい=オオイ
あやまる=アヤマル
ごへんかん=ゴヘンカン
おねがい=オネガイ
etc・・・・

あまりにもおおすぎて手におえません。
たまに「MicroSoft IME 誤変換」がどうとか警告がでてきます。
どうしたらなおるでしょうか?
アドバイスおねがいします。

Aベストアンサー

IME2007をお使いなら下記のURLを参照して修正プログラムをインストールされたらと思います。

IME 2007 変換精度、学習機能を改善した修正プログラムのご案内
http://www.microsoft.com/japan/office/2007/ime/fixmodule.mspx

QCString型からdouble型への変換

C++は初心者です。VC4.0を使っていますがMFCなどは使っていません。

CString型の変数をint型やlong型への変換はなんとかできたのですが、double型へ変換することができずに困っています。atofを使えばいいのだと思い下記のように記述したのですが、コンパイルするとエラーがでます。

  CString sample = "0.234";
  double i;
  i = atof((const char*)sample);

error C2440: 'type cast' : cannot convert from 'class CString' to 'const char *'

どう直せば無事にdouble i に0.234を格納できるのでしょうか?よろしくお願いします。

Aベストアンサー

i = atof( (const char*)sample.GetBuffer(0) );

QVSODivxToDVD でDVDに変換できないAVIファイル

AVIファイルをDVDに変換するには、VSODivxToDVD を利用しています。ほとんどのAVIファイルは変換できますが、まれに変換できないものがあります。そのファイルは他のソフト、Avi2Dvd、AVI2ISO、DVD Flickで試してみてもできません。AVI2JPGで再出力しようとしてもできません。パソコンでは何の問題もなく再生できるので、何とかDVDに変換することができないものでしょうか?
それが可能なソフトや方法がありましたら教えて下さい。

Aベストアンサー

#2です。

・・・???
真空波動研の結果(ファイル名以降)はそれだけでしたか?

コンテナファイルの形式(まあAVIでしょうが)や音声コーデックがないですし、DivXのFourCCや、フレームレート、ビットレートが抜けてます。
48KHzというのは、音声のサンプリングレートだと思いますが、ビットレートが0(音声がない?)です。VBRというのは音声が可変ビットレートを採用しているということですが・・・

もし、真空波動研での確認内容がそれだけなら、変換に失敗したか、ファイルが壊れていて再生、変換できない、ということになると思いますよ。
再生は出来ましたか?

Qstring→CStringの型変換について

過去の質問をみてもよくわからなかったので、
ここで質問させてください。

いままでVBで開発していましたが、最近C++で開発を始めました。
string型からCString型への文字変換の仕方がわからず困りました。

既存のプログラムの修正を行っており、なぜかsystem名前空間の
使用ができない為、このsystem名前空間を使用せずに
変換できる良い方法はないのでしょうか?

Aベストアンサー

std::stringの文字列をCStringオブジェクトに代入するという意味でしょうか?
それでしたら以下の方法はどうでしょう?(参考サイトの完全受け売りですが…)

std::string strStdString ("Hello!");

// CStringのコンストラクタを用いて代入
// std::stringのc_str()メソッドでconst char*の文字列を得る
CString strCString (strStdString.c_str());

参考URL:http://cstrings.blogspot.com/2006/08/how-to-convert-from-stdstring-to.html

Qにち ←なぜ漢字に変換できないのでしょうか?

【ひ】は【日】に変換できるのに、
【にち】はなぜ【日】に変換できないのでしょうか???

Aベストアンサー

もしかして「に」と「ち」で分かれて変換されてしまうということではないでしょうか?
その場合「Shift+右矢印キー」で「にち」全体にフォーカス(?)をかけて再度変換すれば「にち」で変換できると思います。

上記でない場合は、あまりに基礎的なことを言ってしまいすみません。
私もだいぶ前(PC初心者の頃)ですが、「しゅつ」が「主津(しゅ+つ)」になってしまい、「出」が出ないと大騒ぎした経験があるものですから…

QCStringをwchar_tに変換したい

CStringをwchar_tに変換したく思い、ネットで探したところ、
http://msdn2.microsoft.com/ja-jp/library/ms235631(VS.80).aspx
のページを見つけたので、下記のプログラムを組んで実行してみましたがエラーになって
しまいます。

【プログラム】
CString orig("Hello, World!");

// Convert to a char*
const size_t newsize = 100;

// Convert to a wchar_t*
// You must first convert to a char * for this to work.
size_t origsize = strlen(orig) + 1;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);

【エラー】
error C2664: 'strlen' : 1 番目の引数を 'CString' から 'const char *' に変換できません。
error C2664: 'mbstowcs_s' : 4 番目の引数を 'CString' から 'const char *' に変換できません。

&CStrinをconst char *でキャストしてもうまくいきません。
どこがおかしいのでしょうか?

【環境】
WindowsXP+VC++2005

CStringをwchar_tに変換したく思い、ネットで探したところ、
http://msdn2.microsoft.com/ja-jp/library/ms235631(VS.80).aspx
のページを見つけたので、下記のプログラムを組んで実行してみましたがエラーになって
しまいます。

【プログラム】
CString orig("Hello, World!");

// Convert to a char*
const size_t newsize = 100;

// Convert to a wchar_t*
// You must first convert to a char * for this to work.
size_t origsize = strlen(orig) + 1;
size_t...続きを読む

Aベストアンサー

CStringはTCHAR *です。つまりVSがマルチバイト設定ならchar *ですし、
ユニコード設定ならWCHAR *(wchar_t *と同じです)になります。

仮にWCHAR *型に変換したいのなら
CString cStr = "元の文字列"; //cStr.GetString()はTCHAR *型
CStringW wideStr = cStr; //wideStr.GetString()はWCHAR *型
の様に一度CStringWを介した方が楽だと思います。

参考までに
CString ・・・GetString()で得られる型はTCHAR *
CStringA ・・・GetString()で得られる型はchar *
CStringW ・・・GetString()で得られる型はWCHAR *

Q漢字変換できないまま・・・

以前よりパソコンで漢字変換できなくなったトラブルを質問していましたが、多くの方に親切な回答を頂く事ができました。しかし結局どの方法を試しても元に戻る事はありませんでした。昨日リカバリーしましたがそれでも無理でした。なのでキーボードを買い換えようと考えています。しかしキーボードの故障かどうかがわからないので買い換える前にそれを確認する方法ってあるのでしょうか?(キーボードを変えても改善されないっていうパターンが嫌なので)
ちなみに症状としては、
・半角/全角キーで言語バーのカナ変換できない。
・スペースキーと変換キーが全く効かないので変換とスペースがあけられない。
・無変換キーでひらがなをカタカナには変換できる。
・ソフトキーボードでは変換できる。

宜しくお願い致します。

Aベストアンサー

kinkakutouさん 今日は!
済みません。
追加と訂正です。
>(キーボードを変えても改善されないっていうパターンが嫌なので)
質問者さんの内容を取り違えて居ました。ご免なさい!
正:
キーボードの故障ではなさそうです。
ポイントは、言語バーの設定です。
1:言語バーの「ツール」→「プロパティ」を選択し、画面の「標準に戻す」ボタンをクリックします。
2:前回回答のページで、基本設定します。
3:設定が終了したら、もう1度「プロパティ」で右上の「設定」アイコンをクリックし、画面の「キー設定」TABのキー一覧を確認します。
>・半角/全角キーで言語バーのカナ変換できない。
キーの半角/全角が、IMEオン/オフ(入力)以下項目は全て「-」。
半角/全角キーで言語バーは、立ち上げ時は「A」→「あ」の切替えになります。
>・スペースキーと変換キーが全く効かないので変換とスペースがあけ
>られない。
キーのスペースキーは、空白・全変換・変換+次・変換+次・文節変換
・全変換を確認します。
キーのシフト+スペースキーは、入力以外は半角空白を確認します。
これでIMEは修復可能です。
恐らくポイントの1で元に戻ると思います。

kinkakutouさん 今日は!
済みません。
追加と訂正です。
>(キーボードを変えても改善されないっていうパターンが嫌なので)
質問者さんの内容を取り違えて居ました。ご免なさい!
正:
キーボードの故障ではなさそうです。
ポイントは、言語バーの設定です。
1:言語バーの「ツール」→「プロパティ」を選択し、画面の「標準に戻す」ボタンをクリックします。
2:前回回答のページで、基本設定します。
3:設定が終了したら、もう1度「プロパティ」で右上の「設定」アイコンをクリックし、画面の...続きを読む

QVC++におけるCStringの変換

 VisualC++6.0において、CStringというオブジェクトがありますよね。
 たとえば、Edit->GetWindowText(str);
 などで、strにEditのさす文字列を入れたりして、そのあとにstrを使って算術演算をするときにどうしてもstrをintかlong型に直したいのです。
 キャストの仕方がよくわからないので、知っている方教えてください。よろしくお願いします。

Aベストアンサー

LPCSTR で中身をアクセスし、strtol() のような C の関数で処理しましょう。例えば、

CString cstr;
long l;

l = strtol((LPCSTR)cstr, NULL, 0);

この使い方だと、先に紹介されている atol() と同じですが、strtol() では、数字とみなせない
文字列を渡したときに、エラーの起きている位置を知ることができるので、真剣なプログラムには、
atol() よりは、strtol() の方が向いています。


人気Q&Aランキング

おすすめ情報