zoukankan      html  css  js  c++  java
  • Loadrunner脚本之C语言文件处理函数

    一、打开文件

    打开文件使用库函数中的fopen函数。fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息。

    fp=fopen("1.txt","r")

    这里fp可以任意命名,fp不是流的实体,而是指向流的指针。接收两个参数,一个是文件名,另一个是打开文件的模式。

    打开文件的mode模式有:

    Mode

    描述

    r

    以只读模式打开文件

    w

    以只写模式打开文件,若文件存在则文件长度清0

    a

    以追加模式(从文件末尾处开始的只写模式)打开或建立文本文件

    rb

    以只读模式打开二进制文件

    wb

    以只写模式打开二进制文件,若文件存在则文件长度清0

    ab

    以追加模式(从文件末尾处开始的只写模式)打开或建立二级制文件

    r+

    以读写模式打开文件

    w+

    以读写模式打开文件,若文件存在则文件长度清0

    a+

    以追加模式(文件末尾处开始写入的更新模式)打开或建立文本文件

    r+b或rb+

    以读写模式打开二进制文件

    w+b或wb+

    以读写模式建立二进制文件,若文件存在则文件长度清0

    a+b或ab+

    以追加模式(文件末尾处开始写入的更新模式)打开或建立二进制文件

    以读取模式(mode以字符'r开头')打开文件时,如果该文件不存在或者没有读取权限,则文件打开失败。

    对于追加模式(mode以字符'a'开头)打开的文件,打开后的写入操作都是从文件末尾处开始的。

    对于以读写模式(mode的第2或第3个字符为'+')打开的文件相关联的流,可以进行输入和输出操作。但若要在输出操作之后进行输入操作,就必须在这两个操作之间调用文件定位函数(fseek、fsetpos或rewind)。

    返回一个指向对象的指针,该对象用于控制打开的流。打开操作失败时,返回空指针。

    二、关闭文件

    当文件操作完毕后一定要关闭文件,目的是刷新stream流,将保存在缓存中的内容写入到文件中。

    fclose(fp)

    若成功的关闭流,则返回0,否则返回EOF。

    完整的打开关闭文件例子:

    clip_image002

    从键盘读入文件名,并打开:

    clip_image004

    三、文件数据汇总

    要从文件中读取数据需要用fscanf函数。fscanf可以对任意流执行与scanf函数相同的输入操作,比scanf多一个参数。

    fscanf(fp,"%d",&x)

    函数将取到的数据保存在参数x中,若没有执行任何转换就发生了输入错误,则返回定义的EOF错误,否则返回成功赋值的输入项数。若在输入中发生匹配错误,则返回的输入项会少于转换说明符对应的实参个数,甚至为0。

    clip_image006

    练习:从指定文件读入数据,对其中的身高进行从高到低排序:

    test.txt文件内容:

    clip_image008

    源代码:

    clip_image010

    四、向文件写入数据

    printf函数是向标准输出流进行输出的函数,而向任意流执行同样操作就是fprintf函数。

    fprintf(fp,"%d",x)

    练习1:写入日期和时间

    将当前日期和时间写入指定文件

    clip_image012

    练习2:从键盘读取名字、身高和体重信息,并写入文件

    clip_image014

    五、文件内容的显示与复制

    将A文件的内容读取后写入到B文件中。fgetc()函数:读文件函数(由文件中读取一个字符)

    练习1:复制A文件内容到B文件

    clip_image016

    练习2:显示文件内容

    clip_image018

    练习3:统计读入文件的文件行数

    clip_image020

    注:对最后一行处理时需要注意,最后一行如果为换行符则不需要操作,如果不为换行符则需要对count再加一行!

    六、在二进制文件中保存实数

    fwrite和fread函数分别用于二进制文件的写入与读取。

    文件写入函数为:

    fwrite(&pi,sizeof(double),1,fp)

    文件读取函数为:

    fread(&pi,sizeof(double),1,fp)

  • 相关阅读:
    ListNode Java创建链表
    Remove Nth Node From End of List LeetCode Java
    Rotate List LeetCode Java
    LeetCode刷题感想
    Swap Nodes in Pairs LeetCode Java
    Reverse Nodes in k-Group LeetCode Java
    334. Increasing Triplet Subsequence
    300. Longest Increasing Subsequence
    130. Surrounded Regions
    200. Number of Islands
  • 原文地址:https://www.cnblogs.com/dvbbs2012/p/5159776.html
Copyright © 2011-2022 走看看