zoukankan      html  css  js  c++  java
  • C 语言 边读 边写入文件

    读入一个文本文件中的字符串,对给定的patten进行甄别并修改。
    利用边甄别,边转换,边写入的办法实现
    方法:
    1. 把原文件改名,然后新建一个与原文件名相同的文件(目的文件),然后读取原文件,转换后写入目的文件
    2. 最好同时对同一个文件进行读写操作,这样往原文件中写入数据会使原文件中数据丢失(除非是a方式打开)。如果非要这么做,那应先把文件中的数据全读到内存中(内存要能满足需要),然后在内存中对文件进行修改,再写回原文件。 
    3.
    以读写方式打开(r+ w+ a+都可以,不过要注意读写位置指针分别指向文件头、文件头、文件尾);
    一次读一个字符(此时读写位置指针指向此字节后面,判断后,若要转换,移动读写位置指针fseek(fp,-1L,SEEK_CUR),再写入;
    由于C规定:以上述三种方式打开文件,既可读又可写,但:
    (1) 在没有插入fseek()或rewind()的情况下,写不可以直接跟在读后面;
    (2) 在没有插入fseek()或rewind()或碰到文件结束的情况下,读不可以直接跟在写后面.
    所以要转换读写状态。
                                           --------转自http://blog.chinaunix.net/space.php?uid=23915916&do=blog&id=2653234
    View Code
    #include <stdio.h>
    /*
    C 语言 边读 边写入文件
    */
    int main()
    {
    char c;
    FILE *p;
    p = fopen("d:\\myurl.txt","r+");

    while(!feof(p))
    {
    c = fgetc(p);
    if(c >= 97 && c <= 122)
    {
    fseek(p,-1,SEEK_CUR); //读入一个需要改变的字符,位置是在其后. 所以需要将位置从当前位向前走一位
    fputc(c - 32,p);
    fseek(p,0,SEEK_CUR); //在改写完一个字符后,需要使用fseek来改变读写状态,这句没有做位置的移动
    }
    }
    fclose(p);
    /*
    在读或者写的状态时. 只能通过fseek 或frewind来换换读写状态~
    要不然.读的时候不能写. 写的时候不能读~
    */
    }
  • 相关阅读:
    HTML & CSS
    Python面向对象编程
    Python 内置函数
    Python函数
    三.python高级
    使用loadrunner编写webservice接口请求
    loadrunner中JavaVuser脚本的编写
    loadrunner 参数化取值方式详解
    loadrunner 参数化-如何从数据库中取数据-连接数据库进行参数化
    vmstat命令参数介绍
  • 原文地址:https://www.cnblogs.com/easyfrog/p/2303919.html
Copyright © 2011-2022 走看看