freopenの神奇报错

在写小游戏的时候,出现了这个状况:
源代码:

void readmap(int sc)
{
    string file;
    switch(sc)
    {
        case 1:
            file = "map1.in";
            break;
    }
    freopen(file, "r", stdin);
    for(int i = 1; i <= 25; i++)
    {
        for(int j = 1; j <= 25; j++)
        {
            cin >> map[sc][i][j];
        }
    }
}

提示:

cannot convert 'std::string{aka std::basic_string<char>} to 'const char*' for argument '1' to 'FILE*' freopen(const char*, const char*, FILE*)'

各位神犇能不能帮忙看一下qwq

freopen(file, "r", stdin);
改为
freopen(file.c_str(), "r", stdin);