当前位置: 首页 > 编程技术 > 正文

使用cout输出string

cout在c++中表示的是输出,你可以使用cout输出一个字符,int型,float型的数字,但是cout不能输出一个对象

然而,string实际是一个类,c++定义了string为一个类,我们使用对string赋值的时候并不是给string的对象赋值,实际上是给对象的成员变量赋值

比如:

string str;
str = “你好”;

这里千万不要以为str的内容就是 你好,实际上string对 = 进行了运算符重载,保存 你好 的实际上是str的一个成员变量

那么这就好解释下面的错误了:

string str;
str = “你好”;
cout<<str<<endl;

在编译的时候,编译器会报错,并且错误提示为为定义的运算符重载,这也就是说,我们不能直接用cout来输出一个“对象”,(如果运算符被你重载过是可以输出的)

那么我们如何输出string呢?
我们需要使用string类的c_str成员函数
那么正确的方法就是:

string str;
str = “你好”;
cout<<str.c_str()<<endl;

这样再次编译的时候就不会报错了,运行就可以看到结果了

另外,c_str的MSDN资料如下:

//Converts the contents of a string as a C-style, null-terminated string.
const value_type *c_str( ) const;

/*Return Value*/
/*A pointer to the C-style version of the invoking string. The pointer value is not valid after calling a non-const function, including the destructor, in the basic_string class on the object. */


本文固定链接: http://kuaile.in/archives/937 | 蒲公英的博客

该日志由 蒲公英 于2012年05月04日发表在 编程技术 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 使用cout输出string | 蒲公英的博客
关键字:

使用cout输出string:等您坐沙发呢!

发表评论


You must enable javascript to see captcha here!

快捷键:Ctrl+Enter