鼻子塌的男生性功能:这个程序怎么不能执行?string不能用

来源:百度文库 编辑:高考问答 时间:2024/04/28 20:10:12
//=====================================
//f0205.cpp
//倒三角形
//=====================================
#include <iostream>
using namespace std;
//-------------------------------------
int main(){
for (int n=1; n<=10; ++n)
cout <<string(n,' ')+string(21-2*n,'M')+"\n";
}//====================================
编译的时候系统说有两个问题,用的VC++创天中文。
--------------------Configuration: f021011 - Win32 Debug--------------------
Compiling...
f021011.cpp
E:\3 学习\C++\f021011.cpp(10) : error C2784: 'class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> __cdecl std::operator +(_D,const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &)' : could not deduce template argument for '' from 'class std::basic_str
ing<char,struct std::char_traits<char>,class std::allocator<char> >'
E:\3 学习\C++\f021011.cpp(10) : 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
E:\3 学习\C++\f021011.cpp(11) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.

f021011.exe - 2 error(s), 1 warning(s)

加上#include <string>

头文件定义错了,改为#include <iostream.h>
cout的用法错了。
cout <<string(n,' ')+string(21-2*n,'M')+"\n"; 应改为:
cout << string(n,' ') << string (21-2*n,'M')<<"\n";
然后剩下的可能是你的using namespace std; 中的std写错了。
还有你的string,c++中没有这个函数的。是自己的函数的话,应该再包含在头文件里,或在main之前定义一次。

1:加上#include <string>
2:cout << string(n,' ') << string (21-2*n,'M') << endl;

两个错误

#include<string>
如果不可以就把cout <<string(n,' ')+string(21-2*n,'M')+"\n";
改成cout <<string(n,' ')<<string(21-2*n,'M')<<endl;

程序最后没有返回值 因为你的程序写了int main()
所以要在最后写个返回值 例如 return 0;