
日本語を含む文字列が格納されたCstringをcharに変換したく
以下のプログラムを作成しましたがwcstombs_s() でエラーに
なってしまいます。(戻り値が EILSEQ)
どうしたらいいか、アドバイスをいただけないでしょうか?
CString csPass("Testテスト");
char cName[512];
size_t sz = 0;
errno_t err;
err= wcstombs_s(&sz, cName, sizeof(cName), csPass.GetString(), _TRUNCATE);
if(0 != err){
return;
}
【環境】
WindowsXP
VC++2008
No.1ベストアンサー
- 回答日時:
CStringクラスが使えるならCStringAクラスを介してchar型配列に入れてみては。
CString csPass(_T("Testテスト"));
char cName[512];
strcpy_s(cName, CStringA(csPass));
UnicodeにあってCP932(Shift_JIS)にない文字はおかしくなりますけど。
(wchar_t→char変換ということである以上回避しようがない。)
回答ありがとうございました。
確認したところ上手くいきました。頂いた注意点に気を付けながら使用したいと思います。
今回は本当にありがとうございました。
No.2
- 回答日時:
MicrosoftのATLやMFCで提供されているCStringクラスには
GetString()というメソッドはなかったと思いますが、
独自作成のCStringクラスですか?
csPass.GetString()の結果をデバッガ等で
確認してみる必要があるように思います。
Microsoft標準のCStringクラスであれば、
wcstombs_s(&sz, cName, sizeof(cName), (LPCTSTR)csPass, _TRUNCATE);
でよさそうに思います。
(参考)
http://msdn.microsoft.com/ja-jp/library/awkwbzyc …
回答ありがとうございます。
CStringクラスは独自作成のものではありませんが、私自身CStringクラスについてまだまた勉強不足のようです。
教えていただいた参考ページもとても勉強になりました。
今回は回答いただき本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
このQ&Aを見た人はこんなQ&Aも見ています
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
CString から LPCTSTRの型に変換
C言語・C++・C#
-
CStringをwchar_tに変換したい
C言語・C++・C#
-
-
4
画面を強制的に再描画させる方法
C言語・C++・C#
-
5
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
6
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
7
CString型の文字列連結について
C言語・C++・C#
-
8
Connectエラーが出てしまう・・・。
C言語・C++・C#
-
9
MFCでのコンボボックスについて
C言語・C++・C#
-
10
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
11
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
12
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
13
コンボボックスの高さを変更したい。
C言語・C++・C#
-
14
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
15
ビジュアルC++でボタンの有効/無効
C言語・C++・C#
-
16
UpdateData( FALSE); による文字列データの表示更新(VC++6.0)
C言語・C++・C#
-
17
winsockの非同期処理について
C言語・C++・C#
-
18
テキストボックスからフォーカス外す
C言語・C++・C#
-
19
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
20
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「隣の芝生は青く見える」現象...
-
同じクラスにならない確率を教...
-
dllと同じプロジェクトにする方法
-
java eclipse 型に解決できません
-
重複エラーを解決するには
-
main()を持つクラスが2つ以上...
-
小学4年の頃、好きな同級生にス...
-
フレームとウィンドウの違いに...
-
IPアドレスのクラスAを取得して...
-
そんなにお金がなくても年に1度...
-
どこからも呼ばれていない無意...
-
Java「デフォルトのパッケージ...
-
EclipseでJSPのコンパイルエラー
-
下記の問合せを行うクエリを、P...
-
UMLのクラス図はmain()も含むん...
-
「エンクロージング型」と「外...
-
共通で使う関数を集めたクラス...
-
恋愛
-
Cstring(日本語含む)をcharに...
-
Imports 文についての疑問!(VB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
3年間同じクラスになる確率
-
どこからも呼ばれていない無意...
-
共通で使う関数を集めたクラス...
-
ページ遷移時にアコーディオン...
-
同じパッケージ、クラス名が含...
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
EclipseでJSPのコンパイルエラー
-
コンボボックスのマウスホイー...
-
Cstring(日本語含む)をcharに...
-
dllと同じプロジェクトにする方法
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
重複エラーを解決するには
-
string formatについて
-
UMLのクラス図はmain()も含むん...
おすすめ情報