printf不支持string类型

2017-12-06 18:53:40来源:CSDN作者:honk2012人点击

分享
#include<iostream>
using namespace std;

int main(){
char *m_char;
char *m_char1 = "D:/hi";
string m_string = "D:/hellen.jpg";
m_char = (char *)m_string.c_str();
printf("/n%s/n", m_char1);
printf("/n%s/n", m_char);
printf("/n%s/n", &m_string); //输出乱码“(?*D:/hellen.jpg”,原因是printf输出字符串是针对char *的,换言之,printf只能输出c语言中的内置数据,string不是c语言内置数据
return -1;

}


string类型的对象并非单单只有字符串,其内还有许多用于操作的函数,于是&m_string非字符串D:/hellen.jpg的首地址,而m_string个对象的首地址


所以要做如下操作:

printf("%s",m_string.c_str());//c_str()成员方法返回当前字符串的首字符地址


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台