C文件边读边写

C文件边读边写

 

首先以读写方式打开(r+   w+   a+都可以,不过要注意读写位置指针分别指向文件头、文件头、文件尾),一次读一个字符(此时读写位置指针指向此字节后面,判断后,若要转换,移动读写位置指针fseek(fp,-1L,SEEK_CUR),再写入,由于在C中规定:  
    
以上述三种方式打开文件,既可读又可写,但:在没有插入fseek()rewind()的情况下,写不可以直接跟在读后面,在没有插入fseek()rewind()或碰到文件结束的情况下,读不可以直接跟在写后面。所以。。。要转换读写状态。
 
  #include   <stdio.h>  
  void   main()  
  {  
    char   ch;  
    int   i=0;  
    FILE   *fp;  
    fp=fopen("d://tc//aaa.txt","r+");  
    if(!fp)  
    {  
      printf("can   not   open   the   file!/n");  
      exit(0);  
    }  
    while(!feof(fp))  
    {  
      ch=fgetc(fp);  
      if(ch>='a'&&ch<='z')  
      {     ch=ch-32;  
            fseek(fp,-1L,SEEK_CUR);/*
向前移动1个字节
*/  
            fputc(ch,fp);  
            fseek(fp,0L,SEEK_CUR);/*
转换读写状态,并不移动
*/  
        }  
    }  
    fclose(fp);  
    }

你可能感兴趣的:(c,File,FP)