Loadrunner脚本之C语言文件处理函数
2016-01-26 11:30
344 查看
一、打开文件 打开文件使用库函数中的fopen函数。fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息。 fp=fopen("1.txt","r") 这里fp可以任意命名,fp不是流的实体,而是指向流的指针。接收两个参数,一个是文件名,另一个是打开文件的模式。 打开文件的mode模式有:
以读取模式(mode以字符'r开头')打开文件时,如果该文件不存在或者没有读取权限,则文件打开失败。 对于追加模式(mode以字符'a'开头)打开的文件,打开后的写入操作都是从文件末尾处开始的。 对于以读写模式(mode的第2或第3个字符为'+')打开的文件相关联的流,可以进行输入和输出操作。但若要在输出操作之后进行输入操作,就必须在这两个操作之间调用文件定位函数(fseek、fsetpos或rewind)。 返回一个指向对象的指针,该对象用于控制打开的流。打开操作失败时,返回空指针。 二、关闭文件 当文件操作完毕后一定要关闭文件,目的是刷新stream流,将保存在缓存中的内容写入到文件中。 fclose(fp) 若成功的关闭流,则返回0,否则返回EOF。 完整的打开关闭文件例子:
从键盘读入文件名,并打开:
三、文件数据汇总 要从文件中读取数据需要用fscanf函数。fscanf可以对任意流执行与scanf函数相同的输入操作,比scanf多一个参数。 fscanf(fp,"%d",&x) 函数将取到的数据保存在参数x中,若没有执行任何转换就发生了输入错误,则返回定义的EOF错误,否则返回成功赋值的输入项数。若在输入中发生匹配错误,则返回的输入项会少于转换说明符对应的实参个数,甚至为0。
练习:从指定文件读入数据,对其中的身高进行从高到低排序: test.txt文件内容:
源代码:
四、向文件写入数据 printf函数是向标准输出流进行输出的函数,而向任意流执行同样操作就是fprintf函数。 fprintf(fp,"%d",x) 练习1:写入日期和时间 将当前日期和时间写入指定文件
练习2:从键盘读取名字、身高和体重信息,并写入文件
五、文件内容的显示与复制 将A文件的内容读取后写入到B文件中。fgetc()函数:读文件函数(由文件中读取一个字符) 练习1:复制A文件内容到B文件
练习2:显示文件内容
练习3:统计读入文件的文件行数
注:对最后一行处理时需要注意,最后一行如果为换行符则不需要操作,如果不为换行符则需要对count再加一行! 六、在二进制文件中保存实数 fwrite和fread函数分别用于二进制文件的写入与读取。 文件写入函数为: fwrite(&pi,sizeof(double),1,fp) 文件读取函数为: fread(&pi,sizeof(double),1,fp)
Mode | 描述 |
r | 以只读模式打开文件 |
w | 以只写模式打开文件,若文件存在则文件长度清0 |
a | 以追加模式(从文件末尾处开始的只写模式)打开或建立文本文件 |
rb | 以只读模式打开二进制文件 |
wb | 以只写模式打开二进制文件,若文件存在则文件长度清0 |
ab | 以追加模式(从文件末尾处开始的只写模式)打开或建立二级制文件 |
r+ | 以读写模式打开文件 |
w+ | 以读写模式打开文件,若文件存在则文件长度清0 |
a+ | 以追加模式(文件末尾处开始写入的更新模式)打开或建立文本文件 |
r+b或rb+ | 以读写模式打开二进制文件 |
w+b或wb+ | 以读写模式建立二进制文件,若文件存在则文件长度清0 |
a+b或ab+ | 以追加模式(文件末尾处开始写入的更新模式)打开或建立二进制文件 |
从键盘读入文件名,并打开:
三、文件数据汇总 要从文件中读取数据需要用fscanf函数。fscanf可以对任意流执行与scanf函数相同的输入操作,比scanf多一个参数。 fscanf(fp,"%d",&x) 函数将取到的数据保存在参数x中,若没有执行任何转换就发生了输入错误,则返回定义的EOF错误,否则返回成功赋值的输入项数。若在输入中发生匹配错误,则返回的输入项会少于转换说明符对应的实参个数,甚至为0。
练习:从指定文件读入数据,对其中的身高进行从高到低排序: test.txt文件内容:
源代码:
四、向文件写入数据 printf函数是向标准输出流进行输出的函数,而向任意流执行同样操作就是fprintf函数。 fprintf(fp,"%d",x) 练习1:写入日期和时间 将当前日期和时间写入指定文件
练习2:从键盘读取名字、身高和体重信息,并写入文件
五、文件内容的显示与复制 将A文件的内容读取后写入到B文件中。fgetc()函数:读文件函数(由文件中读取一个字符) 练习1:复制A文件内容到B文件
练习2:显示文件内容
练习3:统计读入文件的文件行数
注:对最后一行处理时需要注意,最后一行如果为换行符则不需要操作,如果不为换行符则需要对count再加一行! 六、在二进制文件中保存实数 fwrite和fread函数分别用于二进制文件的写入与读取。 文件写入函数为: fwrite(&pi,sizeof(double),1,fp) 文件读取函数为: fread(&pi,sizeof(double),1,fp)
相关文章推荐
- C++学习笔记(五) 从C到C++
- C语言的位域
- c++野指针 之 实战篇
- 重学C++ (十) OOP面向对象编程(1)
- C++ 智能指针
- C语言中的文件
- C++ 获取 IE 版本
- Codeforces Round #338 (Div. 2):(615A)
- Effective C++(条款48-50)
- c语言中用static修饰的函数与普通函数的区别
- Codeforces Round #339 (Div. 2):( codeforces 614A codeforces 614B )
- Boost 学习之算法篇 one_of 与 one_of_equal
- C++集合操作,使用STL的set容器
- C语言进制转换
- C++32 调用 C# 64编写的dll
- c++中vector的用法详解
- C++ template —— trait与policy类(七)
- Boost 学习之算法篇 none_of 与 none_of_equal
- 【c语言】调整数组使奇数所有都位于偶数前面
- Google C++编程规范 – 第二十一条 -《-inl.h文件》