第十三章 和文件进行通信

程序和文件进行通信简单的一种方式是通过文件重定向,

文件:

      文件,它其实是在磁盘上的一段存储区,之不过它是已命名的。它分为文本视图和二进制视图。在二进制视图中,文件中的每个字节都可为程序所访问,而在文本视图中,程序看到的内容和文件的内容有可能不同。

i/o级别:

    低级I/O:使用操作系统提供的基本I/O服务。标准高级I/O:使用一个标准的C库函数包和头文件中的定义(可移植性好, 处理不同I/O方便,处理速度快(缓冲))。

exit()函数:

     它的作用是关闭所有打开的文件并终止程序,它的参数会被传递给一些操作系统,以供其他程序使用。通常的约定是正常的终止的程序传递值0,非正常终止的程序传递一个非0值,不同退出值可以用来标识导致程序失败的不同原因。在最初调用的main ()中使用return 和调用exit ()效果相同,如果是在递归中程序中,exit()仍然会终止程序,但return 将控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。也就说retrun和exit()的区别在于,即使在除main()之外的函数中调用exit (),它也将终止程序。

fopen ()函数:函数原型:FILE * fopen(const char * path,const char * mode);

    fopen ()函数接受两个参数。第一个参数为要打开的文件名(包含该文件名的字符串的地址),第二个用于指定文件打开的模式的一个字符串。它的返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno

模式字符串

模式字符串 意义
"r" 打开一个文本文件,可以读取文件
"w" 打开一个文本文件,可以写入文件,先将文件的长度截为零,如果文件不存在则先创建之
"a" 打开一个文本文件,可以写入文件,向已有文件的尾部追加内容,如果该文件不存在则先创建之
"r+" 打开一个文本文件,可以进行更新,也即可以读取和写入文件
"w+" 打开一个文本文件,可以进行更新,也即可以读取和写入文件,如果该文件存在则首先将其长度截为零
如果不存在则创建之
"a+" 打开一个文本文件,可以进行更新(可读取与写入)向已有文件的尾部追加内容,如果该文件不存在则
创建之,可以读取整个文件,但是写入时只有追加内容
"rb","wb","ab",“ab+",
" a+b","wb+","w+b","ab+",
"a+b"
与前面的模式相似,只是使用二进制模式而非文本模式打开文件

getc()函数和putc ()函数:

    这两个函数与getchar ()和putchar ()差不多,只是一个使用文件获取,一个使用标准输入,输出。

getc():
功 能: 从流中取字符  
用 法: int getc(FILE *stream);

getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。如果读取失败则返回NULL.若读到文件尾而无数据时便返回EOF.

putc()函数用于输入一个字符到指定流中,其原型如下:
    int putc(int ch, FILE *stream);

【参数】参数ch表示要输入的位置,参数stream为要输入的流。

【返回值】若正确,返回输入的的字符,否则返回EOF。

fclose ()函数

    fclose (fp)函数关闭由fp指定的文件,同时根据需要刷新缓冲区。

if (fclose  (fp ) != 0)  //如果文件成功关闭,fclose ()函数返回值0,否则返回EOF

    printf ("Error in closing file %s\n", argv [1]);






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值