资源描述:
《C语言入门与提高ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言入门与提高8郝庆晋文件I/O文件文件是一组相关数据的有序集合,数据集有一个名称,即文件名文件通常值驻留在外部介质上,在使用时才调入内存中普通文件和设备文件(用户)ASCII文件(文本)和二进制文件(编码方式)fopen#includeFILE*fopen(constchar*path,constchar*mode);返回值:成功返回文件指针,出错返回NULLFILE保存文件信息的结构体stdio.htypedefstruct_IO_FILEFILE;libio.hpath打开文件的路径及文件名注意权限判断返回值mode"r"只读,文件必须已存在"w"只写
2、,如果文件不存在则创建,如果文件已存在则把文件长度截断(Truncate)为0字节再重新写,也就是替换掉原来的文件内容"a"只能在文件末尾追加数据,如果文件不存在则创建"r+"允许读和写,文件必须已存在"w+"允许读和写,如果文件不存在则创建,如果文件已存在则把文件长度截断为0字节再重新写"a+"允许读和追加数据,如果文件不存在则创建练习用各种模式打开文件errno#include当调用标准库函数出现错误时,系统会把错误信息保存,并把errno置为相应的错误类型,用户可以通过errno获取错误原因perror#includevoidperro
3、r(constchar*str);perror()函数打印str(字符串)和一个相应的执行定义的错误消息到全局变量errno中.fclose#includeintfclose(FILE*fp);函数fclose()关闭指定的已打开文件,释放已关联到文件的所有缓冲区.fclose()执行成功时返回0,否则返回EOF.fgetc/getc#includeintfgetc(FILE*fp);fgetc()函数返回来自文件中的下一个字符,如果到达文件尾或者发生错误时返回EOF.fputc/putc#includeintfputc(i
4、ntch,FILE*fp);函数fputc()把给出的字符ch写到给出的已打开文件返回值是字符,发生错误时返回值是EOF.练习用fopen、fgetc、fputc、fclose实现文件拷贝编译后程序名为my_cp$./my_cpfile1file2fgets#includechar*fgets(char*str,intnum,FILE*fp)函数fgets()从给出的文件中读取num-1个字符并且把它们转储到str中.fgets()成功时返回str,失败时返回NULL.注意str的空间fputs#includeintfputs(constch
5、ar*str,FILE*stream);fputs()函数把str(字符串)指向的字符写到给出的输出流.成功时返回非负值,失败时返回EOF.sscanf#includeintsscanf(constchar*buffer,constchar*format,...);函数sscanf()和scanf()类似,只是输入从buffer中读取.返回0表示失败,否则表示正确格式化数据的个数分割字符串练习客户端IP客户端port本地port帐号xxxxxxxxxxxxxxxx在文件中编译多条网络连接信息,程序读取信息后放入链表中,一条信息一个节点sprintf#inclu
6、deintsprintf(char*buffer,constchar*format,...);sprintf()函数和printf()类似,只是把输出发送到buffer中.返回值是写入的字符数量.指定输出长度%8d补空格%08d补零%-10d左对齐%8x十六进制小写%8X大写格式化数字字符串格式化浮点数字符串浮点数使用格式符”%f”控制,默认保留小数点后6位数字%f%10.3f%-10.3f%.3f注意长度,超出按实际打印连接字符串sprintf(s,"%slove%s.",who,whom);%.5s%.*s常见错误缓冲区溢出第一个参数的长度太小或者也可能是
7、后面的参数的问题,打印字符串时,尽量使用”%.ns”的形式指定最大字符数。忘记了第一个参数变参对应出问题通常是忘记了提供对应某个格式符的变参,导致以后的参数错位练习
8、head
9、姓名20
10、年龄3
11、性别1
12、帐号19
13、密码6
14、交易类型4
15、金额15
16、时间25
17、tail
18、通过输入各种信息,用sprintf组合成一条网络报文fsanf#includeintfscanf(FILE*fp,constchar*format,...);函数fscanf()以scanf()的执行方式从给出的文件