回 帖 发 新 帖 刷新版面

主题:请教下关于循环下putchar的输出。

#include <stdio.h>
void main()
{
    FILE *fp;
    char ch,filename[10];
    scanf("%s",filename);
//    printf("%s\n",filename);
    if((fp=fopen(filename,"w"))==NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
    ch=getchar();
    printf("%d",ch);
    ch=getchar();
    while(ch!='#')
    {
        fputc(ch,fp);
        putchar(ch);
        ch=getchar();
    }
    putchar(10);
    fclose(fp);
}

输入输出如下:
file1.c
computer and c#
computer and c
但是getchar应该为一次输入一个字符,putchar应该为一次输出一个字符。
请教下为什么不是输入一个字母c然后输出一个c...即
ccoommppuutteerr  ...?

回复列表 (共1个回复)

沙发


getchar()等待输入遇到回车才结束,前提是缓冲区没有数据了。。
在没回车之前putchar()就没有输出了、、

我来回复

您尚未登录,请登录后再回复。点此登录或注册