关闭

vs2013输出string类问题

标签: string
354人阅读 评论(0) 收藏 举报
分类:

在写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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21498次
    • 积分:843
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:1篇
    • 译文:1篇
    • 评论:0条
    简介
    一个不太行的程序员,欢迎交流!邮箱:Liu_ht3@163.com
    最新评论