| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 321 人关注过本帖
标题:请问关于getchar的这种用法对么
只看楼主 加入收藏
GUnever
Rank: 2
等 级:论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
结帖率:95.24%
收藏
已结贴  问题点数:5 回复次数:4 
请问关于getchar的这种用法对么
#include<stdio.h>
void main()
{
    char a[10];
    char *p;
    p=a;
    for(i=0;(p[i]=getchar())!='\n'&&(p[i]=getchar())!='#';i++);
    printf("%s",a);
}
自己的机子上调试 不对 想上来问一下大家
  中间的&&符号是关键 自己想表达的意思是 不等于\n 也不等于#
2012-04-07 15:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
你同一行里面调用了两次getchar()函数,自己觉得这样前后两个p[i]是同一个东西吗?你真把getchar()当变量用呀?省了一个变量的使用、少写了一行,是不是很高明?

[ 本帖最后由 TonyDeng 于 2012-4-7 16:17 编辑 ]

授人以渔,不授人以鱼。
2012-04-07 16:12
不哭5死神
Rank: 2
等 级:论坛游民
帖 子:42
专家分:74
注 册:2011-4-11
收藏
得分:2 
回复 楼主 GUnever
可以这样使用。你运行出错是因为你忘记定义int i。
你的程序共有两个错误
1、定义 i
2、就是2楼说的你同一行里面调用了两次getchar()函数,这样在一次循环中你会对p[i]
进行两次赋值。而程序将以最后一次作为p[i]的最终结果。
改正如下
#include<stdio.h>
void main()
{
    char a[10];
    int i;
    char *p;
    p=a;
    for(i=0;(p[i]=getchar())!='\n'&&p[i]!='#';i++);
    printf("%s",a);
}

[ 本帖最后由 不哭5死神 于 2012-4-7 16:26 编辑 ]
2012-04-07 16:24
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:2 
i都没定义,第二个getchar()那里直接判断p[i]就可以了
2012-04-07 16:25
GUnever
Rank: 2
等 级:论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
收藏
得分:0 
哦 不好意思哈 这个程序随便调试了一下 请见谅 谢谢
2012-04-07 17:52
快速回复:请问关于getchar的这种用法对么
数据加载中...
 
   



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

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