标题:请大家帮忙看看,这个程序哪里错了~~
只看楼主
foruner
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-4
 问题点数:0 回复次数:4 
请大家帮忙看看,这个程序哪里错了~~
#include <stdio.h>
int main () {
    char c1;
    for (; getchar() != '\n'; ) {
        c1 = getchar();
        printf("%c", c1);
    }
    printf("\n");
    return 0;
}
输入abcdef 回车
输出 bdf
2015-11-11 21:32
li459461891
Rank: 2
等 级:论坛游民
帖 子:27
专家分:89
注 册:2015-11-5
得分:0 
因为你有两个getchar()

这样改:
程序代码:
#include <stdio.h>
int main () {
    char c1;
    for (; (c1 = getchar()) != '\n'; ) {
        //c1 = getchar();
        printf("%c", c1);
    }
    printf("\n");
    return 0;
}
2015-11-11 22:10
li459461891
Rank: 2
等 级:论坛游民
帖 子:27
专家分:89
注 册:2015-11-5
得分:0 
VS2010运行如下:
2015-11-11 22:11
a974723617
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2015-10-20
得分:0 
楼上以给正确答案
2015-11-12 08:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <stdio.h>

int main( void )
{
    for( int c; c=getchar(), c!=EOF && c!='\n'; )
        putchar( c );
    putchar( '\n' );

    return 0;
}
getchar的返回类型是int,如果截短为char后,再跟EOF比较就没意义了,因为无法区分出是读失败而返回EOF,还是正好读取到一个值为 (char)EOF 的字符。
2015-11-12 09:16



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




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

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