C++でファイルを読み込んで、そのファイルの情報を16進数で表示する
#include <iostream>
#include <string>
using namespace std;
int main()
{
string fpath; // ファイルパス変数
cout << "ファイルをドロップしてください。\n";
cin >> fpath; // パス入力
if (fpath != "") // 受け取ったファイルか空じゃなかったら
{
cout << "ファイルを受け取りました。";
FILE *fp = (FILE *)malloc(sizeof(FILE)); // 変数宣言&メモリ確保
fopen_s(&fp, "file.pbm", "rb"); // ファイルを開く
do {
int ch = fgetc(fp);
printf("%X ", ch);
} while (!feof(fp));
fclose(fp);
}
}
というコードを書いたんですが、fopen_s(&fp, "file.pbm", "rb"); // ファイルを開く
という所でユーザから与えられた、fpath
(ファイルパス)を与えたく
fopen_s(&fp, fpath, "rb");
とすると
"std::string" から "const char *" への適切な変換関数が存在しません
というエラーが発生します。
これはどう対処するべきなんですか?