まず、これを読んでくれてありがとう。
C++ でファイルを読み込もうとしています。現在、ユーザーがエクスプローラーでファイルを選択できるようにし、これを「std::string」として返すメソッドがあります。次に、このファイルを開く必要がありますが、これには const char* を使用する方法があります。したがって、一方から他方に変換する必要があります。
代わりに文字列を使用してファイルを読み取る簡単な方法が Windows にある場合は、問題全体を解決できるのでお知らせください。
str.c_str() を使用して文字列から const char* に変換すると、最後に多くの奇妙な文字が表示されます。同じ問題で他のトピックを調査しましたが、答えはすべてそれらのプロジェクトに非常に具体的であるように思われるか、代わりにスティング/ベクターに固執するだけです. 明らかに私はこれを喜んで行いますが、文字列/ベクトルを使用してファイルを開く方法はありません。
どんな助けでも大歓迎です:)これが発生する場所のコードと出力を以下に貼り付けます。
*ソース
std::string f;
if (LOWORD(wParam) == 1) {
f = openFile();
char *fchar = new char[f.size()+1]; // +1 to account for \0 byte
//char *fchar = std::vector[1];
std::strncpy(fchar, f.c_str(), f.size());
file1 = fchar;
std::cout<<"string size: " << f.size() << std::endl;
std::cout<<"string: " << f << std::endl;
std::cout<<"fchar: " << fchar << std::endl;
std::cout<<"file1: " << file1 << std::endl;
}
出力
string size: 33
string: C:\Users\Joseph\Pictures\back_raw
fchar: C:\Users\Joseph\Pictures\back_raw═²²²²½½½½½½½½¯■
file1: C:\Users\Joseph\Pictures\back_raw═²²²²½½½½½½½½¯■**