标题:关于输入回车的问题
只看楼主
chen1982
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-4-16
结帖率:100%
已结贴  问题点数:20 回复次数:5 
关于输入回车的问题
程序代码:
#include <stdio.h>
#define N 100
int main()
{
    char a[N];
    char *p=&a[0];
    printf("enter a message:");


    do{

         *p=getchar();
         p++;
    }while(*p!='\n' && p<&a[N-1]);/*在输入 '\n'和输入达到上限的时候退出输入*/

  printf("reversal is:");
  for(p;p>=&a[0];p--)
     printf("%c",*p);

  return 0;
}
为什么我在没有达到100个字符的上限时输入回车以后依然是要求我继续输入呢?
搜索更多相关主题的帖子: 回车 输入 
2010-06-03 12:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:10 
改为下面这样,就能达到你的要求了:
程序代码:
#include <stdio.h>
#define N 100
int main()
{
    char a[N];
    char *p=&a[0];
    printf("enter a message:");


    while((*p=getchar())!='\n'&&p<&a[N-1])
    {
        p++;
    }

  printf("reversal is:");
  for(p--;p>=&a[0];p--)
     printf("%c",*p);

  return 0;
}

2010-06-03 12:19
chen1982
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-4-16
得分:0 
谢谢
不过是什么原因呢?
2010-06-03 12:24
张君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:113
注 册:2010-5-13
得分:5 
回复 3楼 chen1982
去看一下while(i<10)和do  {
                            。。。。                              
                           }while(i<10);
出来时 i的不同

做自己就好,保持自己,记得微笑
2010-06-03 12:36
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
得分:5 
程序代码:
do{

         *p=getchar();
         p++;
    }while(*p!='\n' && p<&a[N-1]);/*在输入 '\n'和输入达到上限的时候退出输入*/

注意这段代码,你输入的回车是存放在*p中,但在判断*p是否是回车之前你已经把p移向后一个字符了,其实际判断的不是你当前输入的字符了。
2010-06-03 13:35
chen1982
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-4-16
得分:0 
哦 我知道了
这样改也可以
程序代码:
#include <stdio.h>
#define N 100
int main()
{
    char a[N];
    char *p=&a[0];
    printf("enter a message:");


    do{

       p++;  
      *p=getchar();
        
    }while(*p!='\n' && p<&a[N-1]);/*在输入 '\n'和输入达到上限的时候退出输入*/

  printf("reversal is:");
  for(p;p>=&a[0];p--)
     printf("%c",*p);

  return 0;
}

 
2010-06-03 13:37



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




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

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