printf输出string类型出现的问题

#include <iostream>
using namespace std;

int main(void){
    string a;
    a = "123";
    char *b="123";
    cout<<a<<endl;
    cout<<b<<endl;

    //printf("%s",a);报错
    printf("%s\n",a.c_str());//正确
    printf("%s",b); 
    return 0;
}

printf输出字符串是针对char *的,换言之,printf只能输出c语言中的内置数据,string不是c语言内置数据。
string中c_str()成员方法返回当前字符串的首字符地址,可以通过此方法来进行printf输出。

原创文章 42 获赞 32 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39671159/article/details/79931991