ch是一个字符变量,为什么把一个字符写入到文件里,文件里显示的是字符串?

#include<stdio.h>
main()
{
    FILE*fp;
    char ch;
    if((fp=fopen("D:\\12.txt","w"))==NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
    scanf("%c",&ch);
    printf("%c",ch);
    while(ch!='#')
    {
        fputc(ch,fp);
        scanf("%c",&ch);
    }
    fclose(fp);



}

 

fputc这个函数就是将字符输出到流中哦~

 int fputc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动

另外你while循环判断结束是#才不输出

不是你自己用while循环fputc一直在往文件里写入字符么

while(ch!='#')只有输入'#'才会退出循环,在没有输入‘#’前,你键盘输入的所有字符都会写入文件。