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

12-fputs()函数

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

11.3.2  fputs() 函数

fputs() 函数是 puts() 针对文件定制的版本。它们的区别如下。

  • fputs() 函数的第2个参数指明要写入数据的文件。如果要打印在显示器上,可以用定义在 stdio.h 中的 stdout (标准输出)作为该参数。
  • puts() 不同, fputs() 不会在输出的末尾添加换行符。

注意, gets() 丢弃输入中的换行符,但是 puts() 在输出中添加换行符。另一方面, fgets() 保留输入中的换行符, fputs() 不在输出中添加换行符。假设要编写一个循环,读取一行输入,另起一行打印出该输入。可以这样写:

char line[81];
while (gets(line))    // 与while (gets(line) != NULL)相同
     puts(line);

如果 gets() 读到文件结尾会返回空指针。对空指针求值为 0 (即为假),这样便可结束循环。或者,可以这样写:

char line[81];
while (fgets(line, 81, stdin))
     fputs(line, stdout);

第1个循环(使用 gets()puts()while 循环), line 数组中的字符串显示在下一行,因为 puts() 在字符串末尾添加了一个换行符。第2个循环(使用 fgets()fputs()while 循环), line 数组中的字符串也显示在下一行,因为 fgets() 把换行符存储在字符串末尾。注意,如果混合使用 fgets() 输入和 puts() 输出,每个待显示的字符串末尾就会有两个换行符。这里关键要注意: puts() 应与 gets() 配对使用, fputs() 应与 fgets() 配对使用。

我们在这里提到已被废弃的 gets() ,并不是鼓励使用它,而是为了让读者了解它的用法。如果今后遇到包含该函数的代码,不至于看不懂。