printf只能输出C语言中的内置数据,string不是c语言内置数据。 更深入的来说:s这个string类型的对象并非单单只有字符串,其内还有许多用于操作的函数,于是&s并非字符串“helloworld”的首地址,而是s这个对象的首地址。 所以要做如下操作: string s = “helloworld”; printf("%s" , s.c_str());//string中c_st...
printf("%s", str.c_str());因为printf里面要求是char*类型,string和char*是不一样的