按回车键结束输入为什么不行啊?

wenhong609 2012-03-29 09:40:58

#include <iostream>
#include <list>
#include <vector>
#include <string>
#include <stack>
using namespace std;
int main(){
stack<string,vector<string> > ss;
string names;

while(cin>>names && *(names.c_str())!='\13'){
ss.push(names);
}
string name=ss.top();
cout<<name<<endl;
system("pause");
return 0;


}
...全文
334 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Furney 2012-03-30
  • 打赏
  • 举报
回复
不可打印的字符是不会写入到变量中的。
GYTAnonymous 2012-03-30
  • 打赏
  • 举报
回复
楼主需要看看缓冲区部分的知识,,相信很有帮助的



http://blog.csdn.net/gytanonymous/article/details/7409538
seuer126 2012-03-29
  • 打赏
  • 举报
回复
怎么看不懂你的程序是干什么的啊
Lactoferrin 2012-03-29
  • 打赏
  • 举报
回复
西游老冤家
xiyoulaoyuanjia 2012-03-29
  • 打赏
  • 举报
回复 1
你需要知道的 关于回车的!
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。

这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
Lactoferrin 2012-03-29
  • 打赏
  • 举报
回复
你仅仅判断第一个字符
回车还可能是10
pengzhixi 2012-03-29
  • 打赏
  • 举报
回复
回车根本就没有输入到string里面而是被忽略掉了。
wenhong609 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

按回车
然后ctrl + z回车
[/Quote]
我的代码while中有一个判断输入是不是回车的条件,为什么不起作用啊!!
蓝枫10 2012-03-29
  • 打赏
  • 举报
回复
按回车
然后ctrl + z回车

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧