永发信息网

#include<iostream> #include<fstream> #include<string> using namespace std; void ma

答案:1  悬赏:40  手机版
解决时间 2021-03-15 16:03
  • 提问者网友:一抹荒凉废墟
  • 2021-03-15 00:23
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void main()
{
ofstream fout;
fout.open("1.txt");
ifstream fin("1.txt");
string a,b="12";
cin>>a;
fout<<a;
fout.close();
fin>>a;
cout<<a-b;
}
:\users\wentian\desktop\新建文件夹\0.cpp(15) : error C2784: '_D __cdecl std::operator -(const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &,const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &)' : could not deduce template argument for 'cons
t class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &' from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
c:\users\wentian\desktop\新建文件夹\0.cpp(15) : error C2676: binary '-' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' does not define this operator or a conversion to a type acceptable to the predefined
operator
执行 cl.exe 时出错.

0.obj - 1 error(s), 0 warning(s)
请教高手!
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-03-15 00:37
cout<<a-b; a和b是 string class(类),没有 减运算 "-"。所以语法错。
string class 有 "+" 运算, 但不是做数学加法,而是把两个字符串连起来。
改成 cout<< (a+b); 就可以了。

string class(类),有比较运算,==, > , <, != 等。

有时,用 char 数组,比用 string class 方便。看你 a-b 到底 是要做什么运算。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯