![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?e8efa67)
開発環境は VC++ 2008 Express Edition
あるDLLの関数で戻り値としてShiftJISの1文字が格納された
unsigned char SJis[2]
が返され,これを呼び出し側のプログラムで使っている文字列
std::string str
に順に追加していこうと思っています.
そこで,
unsigned char tmpSJis[3];
tmpSJis[0] = SJis[0];
tmpSJis[1] = SJis[1];
tmpSJis[2] = '\0';
str += std::string(tmpCode);
というコードを書いてループさせたのですが,
error C2440: '<function-style-cast>' : 'unsigned char *' から 'std::string' に変換できません。
というエラーが出てしまいうまく変換できません.
これを解決する方法はありませんか?
No.2ベストアンサー
- 回答日時:
str.append(SJis + 0, SJis + 2);
で解決しませんか?
回答ありがとうございます.
ただ,このコードの意味はよく分かりませんでしたが,
試してみたところうまく動作しました.
意味は自分で調べてみようと思います.
とてもシンプルなコードで書けたため,良回答20ptにしました(^-^)
No.1
- 回答日時:
エラーコードそのままです。
std::stringと"unsigned"なcharは互換性が無いです。代わりにtmpSJisをcharで宣言すればOK。コピーするときはmemcpyで。
あと、
str += std::string(tmpCode);
この部分はこう書いても結果は同じになります。
str += tmpCode;
回答ありがとうございます.
教えていただいたコードを試したところ,うまく動作することが確認できました.
勉強になりました.
良回答10ptにしました(^-^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MingwでC++のソースがコンパイ...
-
#define中の#のエスケープ
-
構文エラーが出ているのですが...
-
enumの値から定義名を文字列化...
-
std::map の const 修飾について
-
C++ 文字列とポインタ、STL::ma...
-
構造体配列のvectorへの変換と...
-
ICPCの過去問
-
C++でUNDOを実装しようとしてい...
-
平均値を関数を用いて出力した...
-
#include "fstream.h"
-
switch文のエラーについて
-
なぜ、C++の標準ヘッダをインク...
-
AtCoderABC135の問題Cについて
-
信頼区間の1.96や1.65ってどこ...
-
マイナスからプラスへ転じた時...
-
C言語での引数の省略方法
-
「Aに対するBの割合」と「Aに対...
-
「指定されたキャストは有効で...
-
エクセルで可視セルにのみ値貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VC++で文字列から任意の文字を...
-
enumの値から定義名を文字列化...
-
switch文のエラーについて
-
std::wstringのメモリリークに...
-
空ENTERの判別
-
指定した文字を削除したい
-
構文エラーが出ているのですが...
-
#include "fstream.h"
-
なぜ、C++の標準ヘッダをインク...
-
C言語のポインターで詰まっている
-
C++での <iostream.h>と<iostre...
-
VHDLのsignedとunsignedの違いは?
-
snprintfが使用できない。
-
CStringとString
-
C++で、テキストファイルを一行...
-
【C++】ヘッダ内でstringを格納...
-
gccでコンパイル時のエラー
-
_CRT_SECURE_NO_DEPRECATE が効...
-
string型のフォーマット書式指...
-
JPEGやPNGが読めるLoadImage関数
おすすめ情報