第十五章 输入/输出函数

---恢复内容开始---

1.perror:报告错误(stdio.h)

 

void perror (char const *message)

 

message不是NULL并且指向非空字符串

 

exit:终止执行(stdlib.h)

 

void exit(int status)

 

函数无返回值

 

2.标准I/O函数库缺陷:1.对程序中的函数兼容(两台机器架构不同)    2.当不可移植而去修改函数库,那么函数库不再标准,程序可移植性降低。

 

3.对于C程序,I/O操作简单的从程序中移进移出字节,这种字节流称为流。

 

4.一次性把写满的缓存区写入和逐片吧程序产生的输出分别写入,相比效率更高。

 

5.流分为两种类型:文本流和二进制流

 

文本文件约定以一个回车符和一个换行符(或称为行反馈)结尾。

 

在输出时,文本中的换行符被写成一对回车/换行符:\r\n

 

6.stdio.h所包含的声明之一就是FILE结构。

 

7.对于每个ANSIC C程序,运行系统必须至少提供三个流:标准输入,标准输出,标准错误。

 

8.程序为必须同时处于活动状态的每个文件声明一个指针变量,其类型为FILE *,这个指针指向这个FILE结构,当它处于活动状态时由流使用。

 

9.流通过调用fopen函数打开,为了打开一个流。

 

10.I/O函数以 单个字符,文本行和二进制数据处理数据。

 

11.fopen把文件名作为一个字符串而不是作为路径名,驱动器字母,字符扩展名等各个准备一个参数。

 

12.freopen函数用于打开(或重新打开)一个特定文件流。

 

FILE *freopen ( char const *filename, char const *mode , FILE *stream)

 

这个函数首先试图关闭这个流,然后用特定的文件和模式重新打开这个流。如果打开失败,函数返回一个NULL值。如果打开成功,函数就返回它的第三个参数。

 

13.流用fclose关闭,如果关闭成功,返回0,关闭失败,返回EOF。

 

14.

putchar('abc');

只打印一个字符,打印那个看编译器(dev是最后一个字符)。

 

15.ungetc 把一个先前读入的字符返回到流中,这样它可以在以后被重新载入。

 

16.fputs既可以一次写入一行的一部分,也可以一次写入一整行,甚至可以一次写入好几行。如果写入时出现错误,返回EOF,否则返回非负值。

 

17.fgets可以判断缓冲区字符串是否能容下,而gets不能。

 

18.为什么在scanf中加入&符号:传递参数传递的是指针,而不加这个符号,将导致变量的值作为参数传递给函数,而scanf函数(或其它两个)却把它解释为一个指针,当它被解引用时,或者导致程序终止,或者导致一个不可预料的内存位置数据被改写。

 

19.

于修改某些格式代码的含义。

 

20.

 

21.ftell函数返回流的当前位置,这个函数允许你保存一个文件的当前位置。在二进制流中,这个值就是当前位置距离文件起始位置之间的字节数。

 

22.ftell函数返回的值总是可以用于fseek函数中,作为一个距离文件起始位置的偏移量。

 

fseek:SEEK_SET       SEEK_CUR       SEEK_END

 

23.rewind函数将读/写指针设定回指定流的起始位置。它同时清楚流的错误提示标志。fgetpos和fsetpos分别是ftell和fseek的替代方案。

 

24.

改变缓冲方式:

void setbuf(FILE *stream,char *buf)

int  setvbuf(FILE *stream,char *buf,int mod,size_t size)

 

临时文件:

FILE *tmpfile(void)

这个函数创建了一个文件,当文件被关闭或者程序终止时,这个文件自动删除,该文件以wb+的的方式打开。

 

临时文件名:

char *tmpnam(char *name)

不会导致重名,每次不同名字。

 

文件操纵函数:

int remove(char const *filename)

int rename(char const *oldname,char const *newname)

 

25.stdio.h头文件包含了使用I/O库函数所需要的声明。

 

函数库为I/O所提供的接口称为流。

 

26.FILE是一种数据结构,用于管理缓存区和储存流的I/O状态。

 

27.fopen最多打开文件数因编译器而异,不能小于8。

 

posted @ 2018-02-09 01:16  Hk_Mayfly  阅读(124)  评论(0)    收藏  举报