标题:请教~怎么用回车结束循环?
只看楼主
cqcqcqcq555
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2009-1-22
结帖率:0
已结贴  问题点数:5 回复次数:8 
请教~怎么用回车结束循环?
我想用循环读入一串字符,以回车结束循环,需要怎么做呢?
我是这么想的,但好像不对……
for (i=0;i<12,ch[i]!=10;i++)
{
   cin>>ch[i];
   ch[i+1]=getchar();
}
搜索更多相关主题的帖子: 结束 回车 
2009-07-29 18:02
黯然神伤
Rank: 2
等 级:论坛游民
帖 子:18
专家分:39
注 册:2009-2-5
得分:0 
for (i=0;i<12,ch[i]!=10;i++)
{
   cin>>ch[i];
   if(ch[i]=='0d')
   break;

}
2009-07-29 22:32
cqcqcqcq555
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2009-1-22
得分:0 
……我直接说吧,主要的问题是它把第偶数个字符拿去判断去了没有加入数组中,导致在第奇数个字符时不是判断而是输入所以出错
2009-07-29 22:42
织田长政
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2009-2-18
得分:0 
没看出来。。。。
2009-08-03 21:11
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
得分:0 
回复 2楼 黯然神伤
cin>>ch[i];
      ch[i+1]=getchar();

cin>>ch[i];
你输入回车以后,‘\n’留在缓冲区,然后立马被getchar();得到,清空...,楼主是这个意思吗?
2009-08-03 23:39
my2885390
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2009-8-6
得分:0 
应该是无条件循环吧
2009-08-07 13:39
zqsf
Rank: 2
等 级:论坛游民
帖 子:26
专家分:90
注 册:2009-8-7
得分:0 
我是这样写的:
#include <iostream>
#include<conio.h>
using namespace std;
 
void main()
{
    int i;
    char ch[12];
    for (i=0;i<12;i++)
    {
        ch[i]=_getche();
        if(ch[i]=='\r')break;
    }  
    ch[i]='\0';
    cout<<'\n'<<ch;
}
不知道这个符不符合你的要求
一:原程序中的for (i=0;i<12,ch[i]!=10;i++),我想你是不是想判断for (i=0;i<12&&ch[i]!=10;i++)
二:getchar采用的是行缓冲,只有你在按了回车后才读取一个字符,我换成了getche(),这个函数采用字符缓冲,并具有回显
三:我在运行时发现不能判断ch[i]=='\n',因为发生了字符转换,换行符变成了回车换行,所以我判断ch[i]=='\r'
四:为了保证读取后ch为字符串,所以最后把'\r'换成了'\0'
2009-08-07 14:40
pokemonzj
Rank: 2
等 级:论坛游民
帖 子:15
专家分:21
注 册:2009-7-23
得分:0 
回复 楼主 cqcqcqcq555

按下Ctrl+Z,再按回车enter两下即可结束循环。
楼主可试一下。
2009-08-07 18:10
平凡不在
Rank: 2
等 级:论坛游民
帖 子:39
专家分:69
注 册:2009-8-7
得分:0 
回复
我觉的用break,然后判断一下就好了
2009-08-08 17:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-280951-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021986 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved