关于C++ end问题

作者&投稿:符张 (若有异议请与网页底部的电邮联系)
C++ string的end()用法~

#include#includeusing namespace std;int main(){ string c; while(1){ cin>>c; if(*(c.end()-1)== '*'){ //c.end() ;是一个迭代器,是个指针,前面加个* 就0k break; } } cout<<c<<endl;}
[补充]string用法如下:
1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数 生成str的复制品 c) string s(str,stridx) //将字符串str内"始于位置stridx"的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。 2.字符串操作函数 这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 a) =,assign() //赋以新值 b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符 d) insert() //插入字符 e) erase() //删除字符 f) clear() //删除全部字符 g) replace() //替换字符 h) + //串联字符串 i) ==,!=,,>=,compare() //比较字符串 j) size(),length() //返回字符数量 k) max_size() //返回字符的可能最大个数 l) empty() //判断字符串是否为空 m) capacity() //返回重新分配之前的字符容量 n) reserve() //保留一定量内存以容纳一定数量的字符 o) [ ], at() //存取单一字符 p) >>,getline() //从stream读取某值 q) << //将谋值写入stream r) copy() //将某值赋值为一个C_string s) c_str() //将内容以C_string返回 t) data() //将内容以字符数组形式返回 u) substr() //返回某个子字符串 v)查找函数 w)begin() end() //提供类似STL的迭代器支持 x) rbegin() rend() //逆向迭代器 y) get_allocator() //返回配置器

不是end1,而是endl,后面是小写字母l。

这里用endl就是输出周长后换行,只是为了输出美观吧,不然下一个输出会接着周长后输出

endl和end在这里都是无法识别的,所以提示“未声明的标识符 ”。
你应该写成:
std::cout << std::endl;
std::cout << x + y << "" << x * y ;
std::cout << std::endl;

给你解释一下
std是命名空间,::(两个冒号)是域操作符,cout, cin和endl都是命名空间std里定义的,所以使用时必须加上std::

需要加上名字空间:std::cout<<std::endl;
或者你在include语句后加一句:using namespace std;
然后就可以这样用:cout<<endl;

std::cout << end;
应该是std::cout << endl;
<iostream>
改为<iostream.h>

是endl不是end
#include <iostream>
int main ()
{
int x = 5;
int y = 7;
std::cout << endl;
std::cout << x + y << "" << x * y ;
std::cout << endl;
return 0;
}


阿巴嘎旗18443208970: C++中end1的作用 -
愈董硫酸: 不是end1,而是endl,后面是小写字母l.这里用endl就是输出周长后换行,只是为了输出美观吧,不然下一个输出会接着周长后输出

阿巴嘎旗18443208970: 编写c++程序时,链表中end不明确怎么解决 -
愈董硫酸: 一般不会有end不明确的吧?你的end指的是链表尾?通常单链表尾部那个节点的next是null这样就能很好表示为end了.

阿巴嘎旗18443208970: C++中的终止符问题 -
愈董硫酸: 这就看你怎么使用数组了,你可以用个循环:while(a[i]=='#') break;之类的方法. 另外,如果你的数组存内存中的话,这样使用很危险的.容易将数组之后,所存储的内容覆盖到数组的后面几位上.若是字符串输入那可以用string容器.

阿巴嘎旗18443208970: C++.里面如何判定输入的是END? -
愈董硫酸: char s[20]; scanf("%s",s); if((s,"End")==0) 则输入为End

阿巴嘎旗18443208970: C++ string的end()用法 -
愈董硫酸: #include<iostream> #include<string> using namespace std;int main(){string c;while(1){cin>>c;if(*(c.end()-1)== '*'){ //c.end() ;是一个迭代器,是个指针,前面加个* 就0kbreak;}}cout<<c<<endl; }[补充]string用法如下: 1.声明一个C++字...

阿巴嘎旗18443208970: c++输入结束语句问题 -
愈董硫酸: 你想表达的应该是直接输入回车时结束输入是吧 a[i]判断的地方有点问题,你这样写,结束条件 依赖于程序在初始a数组的时候的a的内容! 把a[i]放到输入语句之后来判断,而且应该与回车符的ascll码比较.

阿巴嘎旗18443208970: c++中goto end和exit有什么区别? -
愈董硫酸: goto end是跳过后面的内容直接到结尾,exit是退出.goto end一般前面还有if条件

阿巴嘎旗18443208970: 关于C++的文件结束符的困惑 -
愈董硫酸: 上面都是学c的吧 呵呵 还是我来说这个c++问题吧 ctrl+z是结束符 文件结束符 并不是让cin结束 如果你理解的深点的时候你就明白了 它只不过是让cin变为bad()而已 这点是有点质疑的 你在输入1 2 3 之后回车 再ctrl+z 然后再来一次 也就是两次...

阿巴嘎旗18443208970: 为什么我每次编写的C++都会有unexpected end of file found这个错误?? -
愈董硫酸: 通常是大括号匹配出了问题; 文面意思是 :"发现意外的文件结束" end of file 就是 EOF 是传输控制符 在C源文件里要是大括号 没有 ''}'' 这个给他匹配完,那么在编译栈里的"{"就不能消去,出现EOF时栈不为空,于是有:'unexpected end of file found” 就是文件本不应该结束的,但是它结束了,编译器不会说是出现了奇迹,所以就是语法错误,看看文件最下面,有没有 ''}'' 大括号完;

阿巴嘎旗18443208970: C++容器的end与cend方法有什么区别 -
愈董硫酸: c开头的是C++11的,新标准,区别是:begin():Return iterator to beginning (public member function ) cbegin():Return const_iterator to beginning (public member function ) end和cend类似 带c的返回const_iterator类型,含const属性

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网