#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 *" への適切な変換関数が存在しません

というエラーが発生します。
これはどう対処するべきなんですか?