CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于回车的一个问题

楼主Slime_wu()2006-03-04 00:15:05 在 C/C++ / C++ 语言 提问

#include   <fstream>  
  #include   <iostream>  
  #include   <string>  
   
  using   namespace   std;  
   
  int   main(){  
          ifstream   in("more.cpp");  
          string   line;  
          char   cmd;  
          while(getline(in,line)){  
                  cout   <<   line   <<   endl;  
                  while(cin>>cmd);                  
          }  
          return   0;  
  }  
  一次显示文件一行,等待用户输入回车后显示下一行  
   
  上面的代码无法正常工作  
   
  while(cin>>cmd);  
  在输入回车后跳不出循环 问题点数:10、回复次数:15Top

1 楼cunsh(村少)回复于 2006-03-04 00:51:39 得分 0

while(getline(in,line)){  
                  cout   <<   line   <<   endl;  
                  cin.get();                  
          }Top

2 楼Slime_wu()回复于 2006-03-04 12:31:23 得分 0

解决了,3x  
   
  能告诉我  
  while(cin>>cmd);  
  为什么不行么Top

3 楼Slime_wu()回复于 2006-03-04 12:35:57 得分 0

还是不行,我要是一次输入n个空格+Enter  
  就一次输出了n+1行的文本  
  并不是我想要的效果Top

4 楼Slime_wu()回复于 2006-03-04 12:46:17 得分 0

while(cin>>cmd);  
  在输入是回车时是不是认为没有输入?Top

5 楼rabbit729(无名胜有名)回复于 2006-03-04 12:57:21 得分 0

cunsh(村少)顶!!!!Top

6 楼zzw820626(偶要分,偶要星星)回复于 2006-03-04 12:58:36 得分 0

template<class   Elem,   class   Tr>  
        basic_istream<Elem,   Tr>&   operator>>(  
              basic_istream<Elem,   Tr>&   _Istr,    
              Elem&   _Ch  
        );  
  cin>>cmd   执行以后返回cin,只要cin是好的,那么while(cin)始终为真就不返回了  
  Top

7 楼zzw820626(偶要分,偶要星星)回复于 2006-03-04 13:07:13 得分 3

char   cnd[100];  
  while(getline(in,line)){  
                  cout   <<   line   <<   endl;  
                  cin.getline(cmd,100);                  
          }  
  Top

8 楼Slime_wu()回复于 2006-03-04 13:09:40 得分 0

我觉得:  
  回车不是应该被>>当作分隔符来辨识么,当直接输入回车时  
  cin>>cmd;  
  这条语句会以为cin没有输入,所以返回假退出Top

9 楼Slime_wu()回复于 2006-03-04 13:25:38 得分 0

char   cnd[100];  
  while(getline(in,line)){  
                  cout   <<   line   <<   endl;  
                  cin.getline(cmd,100);                  
          }  
  这种方式行  
   
  其实我想实现一个类似于unix上more功能的东东  
  现在的情况会接受输入  
  c++里如何处理键盘检测  
  通过检测按下"Enter"来做处理  
  谢谢指点Top

10 楼S_G_D(紫色)回复于 2006-03-04 13:33:39 得分 0

if   verily   couldn't,I   advice   to   use   the   function   "getchar"   in   C   language.Top

11 楼shaoboailinglijun(邵波爱凌丽君)回复于 2006-03-04 14:12:35 得分 0

Ctrl+Z就可以Top

12 楼hyigle_love(parker)回复于 2006-03-04 14:32:32 得分 2

while(getline(in,line))  
          {  
                  cout   <<   line   <<   endl;  
                  while(cin.get()!='\n')  
                              continue;  
                              cin.get();//忽略回车符  
          }  
   
  Top

13 楼wjd7623054(千古风流)回复于 2006-03-05 12:50:05 得分 2

while(getline(in,line))  
  {  
          cout   <<   line   <<   endl;  
          while(cin.get()=='\n'){}  
  }  
  Top

14 楼dx30611(想要clean code)回复于 2006-03-05 14:45:26 得分 3

cin在接受字符时忽略掉回车,空格,水平制表符  
  get接受每一个字符Top

15 楼luvybird()回复于 2006-03-06 00:51:25 得分 0

支持dx30611Top

相关问题

  • 回车?!
  • 回车换行?
  • 回车问题
  • Tab==回车
  • 判断回车?
  • 回车 问题
  • 回车问题。
  • 回车怎么写?
  • 回车的问题.
  • ACCESS中的回车。

关键词

  • basic
  • 回车
  • cin
  • getline
  • istream
  • 返回
  • 输入
  • cmd
  • cout
  • line

得分解答快速导航

  • 帖主:Slime_wu
  • zzw820626
  • hyigle_love
  • wjd7623054
  • dx30611

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo