关于#c语言#的问题:写abcd只能读bd

写abcd只能在文件输出cd,写ac,只能读c,这是为什么😢

贴一下代码喽

看看你怎么写的,看似是正好只能读取一半,是不是下标搞错了。

上面贴的代码里面,while循环体的ch=getchar()多余了,因为这个ch获取了输入的值后没有写入文件,然后还容易导致输入结束异常;

去掉此行代码,然后在输入结束加上关闭文件的代码即可。

修改如下:


#include <stdio.h>

int main(void){
    
    char ch ;
    FILE * fp;

    fp=fopen("F:\\save.txt","w");
    
    while((ch=getchar() ) !='#'){
        putc(ch,fp);
        //ch=getchar();  //此行不需要
    }
    fclose(fp);  // 写入完成后,关闭文件
           
    
    return 0;
    
} 
    
    

img