C++程序编译时报错未初始化某个变量,如何解决?

问题遇到的现象和发生背景

本来是想自动更改文件名的,所以设置了一个字符串变量shuru用来接受新文件名,但是在传递值的时候报错了。

问题相关代码,请勿粘贴截图
string shuru=“***.txt”; // ***是文件名
const char* fname = shuru;
fstream fs;
fs.open(fname,ios::in);

运行结果及报错内容
[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' in initialization

我的解答思路和尝试过的方法
我想要达到的结果

将shuru变量值传递给fs变量。

要使用shuru.c_str()

    string shuru = "* **.txt"; // ***是文件名
    const char* fname = shuru.c_str();
    fstream fs;
    fs.open(fname, ios::in);

因为 你定义shuru 是string 类型的,而你fname是char * ,你可以把string  =  char * ,但是不能把 char *  = string  

只能char* fname = shuru.c_str();  这样去赋值