用printf输出string类型数据总结
2015-03-11 13:06
781 查看
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
string a;
a[0]='a';
a[1]='/0';
printf("%s/n",a);
system("pause");
}
出错: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime
printf只能输出C语言内置的数据,而string不是内置的,只是一个扩展的类,这样肯定是链接错误的。string不等于char*,&a代表的是这个字符串的存储地址,并不是指向字符串的首地址,aa 对象中包含一个指向"string"的指针, &aar得到的是这个对象的地址,不是"string"的地址。
printf输出string类型应如此操作!
#include<iostream>
#include<string>
using namespace std;
void main()
{
string aa="qqq";
printf("%s",aa.c_str()); //不推荐
//或者cout<<a;
}
由于string是C的一个 扩展类型,其数据赋值可以用其提供的方法:assign(const char *)或直接用其构造函数
string str( "Now is the time..." );
#include <string.h>
using namespace std;
int main()
{
string a;
a[0]='a';
a[1]='/0';
printf("%s/n",a);
system("pause");
}
出错: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime
printf只能输出C语言内置的数据,而string不是内置的,只是一个扩展的类,这样肯定是链接错误的。string不等于char*,&a代表的是这个字符串的存储地址,并不是指向字符串的首地址,aa 对象中包含一个指向"string"的指针, &aar得到的是这个对象的地址,不是"string"的地址。
printf输出string类型应如此操作!
#include<iostream>
#include<string>
using namespace std;
void main()
{
string aa="qqq";
printf("%s",aa.c_str()); //不推荐
//或者cout<<a;
}
由于string是C的一个 扩展类型,其数据赋值可以用其提供的方法:assign(const char *)或直接用其构造函数
string str( "Now is the time..." );
相关文章推荐
- 用printf输出string类型数据总结
- 用printf输出string类型数据总结
- 用printf输出string类型数据总结
- 用printf输出 STL string数据类型
- 用printf输出 STL string数据类型
- 用printf输出 STL string数据类型
- printf输出string类型数据
- printf使用%s直接输出string类型,Program received signal SIGILL, Illegal instruction
- [置顶] Redis String类型数据常用的16条命令总结
- stringstream/snprintf/sscanf/atoi/itoa数据类型转换比较
- C语言中格式字符指定输出项的数据类型和输出格式总结
- printf, sprintf,输出数据类型
- 关于printf输出格式类型的总结
- 今天才发现printf不能直接输出string类型
- 3.6 java基础总结①包装类,基本数据类型,String相互间转换
- printf使用%s直接输出string类型,Program received signal SIGILL, Illegal instruction
- C语言整数类型及printf格式化输出问题总结复习及进制转换的简单实现
- printf, sprintf,输出数据类型
- 24、printf跨平台,数据类型与输出类型要匹配
- printf函数使用—针对不同数据类型的输出结果详解