日本語を含む文字列が格納された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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
CString から LPCTSTRの型に変換
C言語・C++・C#
-
-
4
CStringをwchar_tに変換したい
C言語・C++・C#
-
5
文字列の置換をCStringで(C++)
C言語・C++・C#
-
6
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
7
テキストカーソル位置の取得
C言語・C++・C#
-
8
VC++でコントロールの境界線を描画する方法
C言語・C++・C#
-
9
fopenでのパス指定
C言語・C++・C#
-
10
wsprintf関数の使い方について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グローバルIPとプライベートIP...
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
Java「デフォルトのパッケージ...
-
「天声人語」をインターネット...
-
Javaでの構造体の構造体のクラ...
-
UMLのクラス図はmain()も含むん...
-
ATLとMFCの違いは何でしょうか?
-
同じパッケージ、クラス名が含...
-
自作のクラスファイルがインポ...
-
共通で使う関数を集めたクラス...
-
重複エラーを解決するには
-
クラスのプロパティに構造体を...
-
正規表現を使った小数入力チェ...
-
IPアドレスのクラスAを取得して...
-
1 つのヘッダファイルに複数の...
-
IPアドレスの3バイト目の呼び方
-
同じクラスにならない確率を教...
-
3年間同じクラスになる確率
-
河合塾のクラス分けについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グローバルIPとプライベートIP...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
「天声人語」をインターネット...
-
オブジェクト指向プログラミン...
-
同一パッケージにあるクラスが...
-
SQLです教えてくださいお願いし...
-
自作のクラスファイルがインポ...
-
packageとimport の違いって?
-
重複エラーを解決するには
-
1 つのヘッダファイルに複数の...
-
UMLのクラス図はmain()も含むん...
-
main()を持つクラスが2つ以上...
-
3年間同じクラスになる確率
-
河合塾のクラス分けについて
-
EclipseでJSPのコンパイルエラー
-
どこからも呼ばれていない無意...
-
IPアドレスの3バイト目の呼び方
-
同じクラスにならない確率を教...
-
IPアドレスのクラスAを取得して...
おすすめ情報