vs2013输出string类问题

来源:互联网 发布:淘宝天猫怎么抢红包 编辑:程序博客网 时间:2024/06/14 03:55

在写C++程序时,需要输出string的对象:

用cout输出提示:

错误    1    error C2679: 二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换) 。


    2    IntelliSense:  没有与这些操作数匹配的 "<<" 运算符
            操作数类型为:  std::ostream << std::string   


      因为使用的头文件是#include <string.h>,这个是C语言里面的,用来处理C语言中的字符数组的。并没有提供C++中string类的相关函数。所以这两个头文件是没有关系的,并不是说#include <string>是#include <string.h>的升级版。#include<cstring>是对应C语言中的#include <string.h>。

有两个解决方法:


1,使用头文件#include <string>。使用C++字符串string的头文件。

2,使用c_str()进行输出。c_str()返回一个const char*类型的指针,可以使用cout,printf进行输出。为了更好与C语言进行转换。


在code-blocks下试了下,发现都可以正常的输出,不加头文件#include <string.h>或者#include <string>或者#include<cstring>都可以的。应该是#include <iostream>包含了这几个头文件。

0 0