当前位置:嗨网首页>书籍在线阅读

17-fgets()和fputs()函数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.4.2  fgets()fputs() 函数

第11章时介绍过 fgets() 函数。它的第1个参数和 gets() 函数一样,也是表示存储输入位置的地址( char * 类型);第2个参数是一个整数,表示待输入字符串的大小[1];最后一个参数是文件指针,指定待读取的文件。下面是一个调用该函数的例子:

fgets(buf, STLEN, fp);

这里, bufchar 类型数组的名称, STLEN 是字符串的大小, fp 是指向 FILE 的指针。

fgets() 函数读取输入直到第1个换行符的后面,或读到文件结尾,或者读取 STLEN-1 个字符(以上面的 fgets() 为例)。然后, fgets() 在末尾添加一个空字符使之成为一个字符串。字符串的大小是其字符数加上一个空字符。如果 fgets() 在读到字符上限之前已读完一整行,它会把表示行结尾的换行符放在空字符前面。 fgets() 函数在遇到 EOF 时将返回 NULL 值,可以利用这一机制检查是否到达文件结尾;如果未遇到 EOF 则返回之前传给它的第一个参数地址。

fputs() 函数接受两个参数:第1个是字符串的地址;第2个是文件指针。该函数把根据传入地址找到的字符串写入指定的文件中。和 puts() 函数不同, fputs() 在打印字符串时不会在其末尾添加换行符。下面是一个调用该函数的例子:

fputs(buf, fp);

这里, buf 是字符串的地址, fp 用于指定目标文件。

由于 fgets() 保留了换行符, fputs() 就不会再添加换行符,它们配合得非常好。如第11章的程序清单11.8所示,即使输入行比 STLEN 长,这两个函数依然处理得很好。