解决VC6.0中ostringstream类输出__int64类型导致的错误error C2593: 'operator <<' is ambiguous

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

#include <sstream>


int main()
{
    std
::ostringstream ss;
    ss
<< 123;
    __int64 i
;
   
// error C2593: 'operator <<' is ambiguous
    ss
<< i;
}
以上代码提示错误error C2593: 'operator <<' is ambiguous
这是由于ostringstream类没有定义__int64 类型的整型的缘故,自定义以下重载函数可以解决该问题:
#include <tchar.h>
std::ostream& operator<<(std::ostream& stream, __int64 data)
{
   
char buf[255] = {0};
    _i64tot
( data, buf, 10 );

    stream
<< buf;
   
return stream;
}

 

 

 

error C2593: 'operator' is ambiguous 在做一道c++习题重载流操作符时,编译器报错: error C2593: ‘operator >>’ is ambiguous 在论坛上找了许久,才发现vc6.0重载流操作符时引用头文件应如下: #include<iostream.h> 相反,使用 #include<iostream> using namespace std; 此时,重载流操作符则会报错: error C2593: ‘operator >>’ is ambiguous 在这个背景下,如果同时想 阅读详情

相关推荐

error C2593: ‘operator =‘ is ambiguous 不明确

在VS开发环境下,建立的MFC工程。 百度知道上有人说 把#include &amp;lt; iostream&amp;gt; using namespace std; 改为 #include&amp;lt;iostream.h&amp;gt; 但我试了会报错: error C1083: Cannot open include file: ‘iostream.h’: No such file or directory 看...

虾米的日常总结 2904

c++:error C2593: \'operator <<\' is ambiguous

//代码:#include#includeusing namespace std;class Time{   public:              int hour, minute, second;    void set(int h, int m, int s){hour =h, minute =m, second =s;}    friend Time& operator ++(Time

dragoo1的专栏 4400

error C2593: 'operator >>' is ambiguous(不明确)

昨天接手一个新的维护项目,编译项目时出现如下错误error C2593: 'operator >>' is ambiguous error C2593 “operator >>”不明确 仔细查询后发现这是因为最新的vs编译器对强制转换做的一种安全保护机制,编译C++时不允许不安全的强制类型转换, 但是vs似乎没有单独设置类型强制转换的选项,可以做如下尝试,项目设置改为C...

终极程序 4093

C2593 operator << 不明确

错误 C2593 “operator

r081r096的博客 1226

C++中 error C2593: “operator +=”不明确的错误解决方法

C++中 error C2593: “operator +=”不明确的错误解决方法

yaosir1993的博客 1万+

VC++ 到vs 2010error C2593: “operator =”不明确

我在使用过程中的时候是用了定义了一个CString 对象space 但是我在使用这个方法是 m_space=m_space+"    "; 编译出错:  error C2593: “operator =”不明确 1>          d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\cstri

mczhang的专栏 8351

error 2593 operator << 不明确的可能的解决方法

编译Martinez算法时遇到该问题,提示重载的&lt;&lt;操作符调用不明确。 解决方法为:在cpp文件中将重载的该操作符的实现前添加完整的命名空间路径。

weixin_33894992的博客 491

关于VC6不能定义long long类型

关于VC6不能定义long long类型

XinChen_boom的博客 1050

MFC程序从VC6.0移植到VS2005出现'operator +=' is ambiguous错误

一个以前的VC6.0的程序,在VS2005中编译,出现了错误'operator +=' is ambiguous   CString m_strDisplay; m_strDisplay += (cDigit - IDC_0 + 0x30); 出错位置在第二句话。     出错原因在于vs2005的编译检查比较严格,需要强制转换格式。 修改为:m_strDisplay += stati

1357

关于重载提取运算符'<<'VC6.0环境下产生二义性(ambiguous)的解决办法

今天编写了下列代码(仅仅显示关键代码片段),在VS2015上运行正常,但是在VC6.0下出现错误提示。 #include using namespace std; class vct { private: double x, y; public: //vct(double X = 0, double Y = 0) { x = X, y = Y; } //~vct() {} //void

ねこじゃんと言っています 833

VC中__int64的用法

VCVC6.064位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-922337203685​4775808~922337203685​4775807(10^19)与0~18446744073709551615(约1800亿亿)(10^20)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64

编辑编辑器 2539

VC6.0 中的__int64输入和输出

1.错误输出 错误结果: 2.正确输出方式:%I64d 正确结果: 3.再送个连接:C++中__int64用法

qq_34463308的博客 830

C++学习笔记:ostringstream

当初写程序的时候需要动态的根据一个int型的索引来产生一个字符串,试了很多方法都不能如愿,我当时想到的是使用#和##宏: #define str(i) #i #define STR(i) str(string)##str(i) 这样当我写: int i=3; cout 时,我期待着给我输出string3,事实是输出的为stringi。。。 ostrings

yu0089的专栏 3974

string利用stringstream进行格式化

1.stringstream的> 操作符可以直接操作字符串或数值 如: #ifdef _UNICODE typedef std::wstring tstring; typedef std::wstringstream tstringstream; #else typedef std::string tstring; typedef std::stringstream tstrings

学而不思则罔 2336

linux不支持uint64_t,Code :: Blocks linux glext.h“对uint64_t的引用是不明确的”

我使用Xubuntu 14.04中的Code :: Blocks和从源代码安装的GLFW3制作OpenGL应用程序。在蚀CDT它工作但在此IDE编译时的错误消息显示出来:Code :: Blocks linux glext.h“对uint64_t的引用是不明确的”[...]/usr/include/GL/glext.h|1404|error: reference to ‘uint64_t’ is ...

weixin_29056145的博客 939
上一篇: CString 转化为 char*
下一篇: Page Size
tttt418
博客等级 码龄19年 8粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值