最佳答案

fopen 是操作文件用的,比如创建读取等,它有两个参数,第一个是文件名,第二个是操作方式。

第一个参数很好理解,因为是用来操作文件的,自然得告诉它要操作的是什么文件。

第二个参数也不难理解,既然是操作,那如何操作,就由这个参数决定。

常见的操作有读("r")、写("w")和在尾部添加("ab")等等。

把参数全部填好后,就要用一个变量来获取 fopen 调用后的返回值。

那为什么要返回值?比如用 fopen 读取一个不存在的文件,那么怎么知道有没有读取失败?

所以返回值很有必要,只有看看这个返回值是不是表示读取失败就可以了。

freopen 有三个参数,前两个和它返回值跟fopen是一样的,就多了一个参数,被重定向的对象。

为了更好的理解什么是重定向,用下面举的例来说明。

比如,在 main 函数中写上一句 puts("abc"); ,通常会弹出一个黑框框,并显示 abc,但在它之前添加一行 freopen ("b.txt", "w", stdout); ,那么再运行,会发现弹出的黑框框里的文字不见了。

再打开当前的目录会发现,多了一个 b.txt 文件,这个文件里的内容正是原本要在黑框框里显示的文本。原本用在黑框框的输出函数也都输出到了这个文件里来了。

对于这种效果,我们称之为重定向,这也正是和 fopen 最重要的区别之一,fopen 仅仅用来操作文件,而 freopen 则用其可对目标对象进行重定向的特性来实现某些特殊的需求。

最佳答案由网友    提供

c语言中freopen函数,fopen和freopen_C中freopen和fopen的区别(用法+详解+区别)相关推荐

  1. python语言中print函数的作用_python中如何使用print函数

    Python中print语句 1.逗号分隔符 在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:x = 1 y = 2 z = 3 p ...

  2. c语言中time函数作用,C语言中时间的基本用法小结

    前言 在我学的这些编程语言中,总是记不住它们的时间处理方式,每次用到时都要重新看,所以想着在这里记录下来,也方便用到时查找,也方便有需要的朋友们参考. time_t和struct tm 在C语言中用t ...

  3. php strpose_php中strpos()和stripos()函数的区别用法详解

    本篇文章主要给大家介绍PHP中strpos()和stripos()函数的区别用法介绍,希望对需要的朋友有所帮助! strpos()函数 这个函数帮助我们找到一个字符串在另一个字符串中第一次出现的位置. ...

  4. c语言中fopen_s函数,关于C语言中从文件读取数据时,fopen,fopen_s和fscanf,fscanf_s的函数用法(函数的用法有很大区别)...

    首先这都是针对由于VS软件的设置,一些函数的需要在函数名后面加"_s"才能使用. (或者最直接的方法程序开头加#pragma warning(disable:4996) 就什么问题 ...

  5. python语言中print函数的作用_python中print()方法有什么

    python中print()方法有什么 发布时间:2020-11-11 13:50:08 来源:亿速云 阅读:91 作者:小新 这篇文章给大家分享的是有关python中print()方法有什么的内容. ...

  6. c语言中open函数r,C语言中open函数

    语法Open ( windowvar, windowtype {, parent } ) 参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:s ...

  7. c语言中rewind函数_C语言中的rewind()函数与示例

    c语言中rewind函数 C中的rewind()函数 (rewind() function in C) The rewind() function is defined in the <stdi ...

  8. C语言中fprintf函数的使用介绍

    C语言中fprintf函数的使用介绍 fprint函数的原型: //fp为文件指针,format是输出控制字符串 int fprintf(FILE *fp,char *format,...) 下面是使 ...

  9. c语言fgetc函数作用,C语言中fgetc函数的使用方法

    该函数包含在C语言中的stdio.h头文件中,主要功能是从流中读取一个字符,并增加文件指针的位置. 函数原型:int fgetc(FILE *fp); 函数功能:从流中读取字符,即从fp所指定的文件中 ...

最新文章

  1. 如何优化才能赢得搜索引擎“欢心”,提升抓取量?
  2. 高盛发布区块链报告:从理论到实践(中文版)
  3. 单工 半双工 全双工
  4. java 开发注意项_JAVA开发注意事项集锦
  5. 今天的绿得像碧玉的 飞鸽
  6. 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
  7. Sitecore 8.2 页面架构设计:模板与组件
  8. Linux内核为什么会发生soft lockup?
  9. 雪花算法生成数字id_全局唯一iD的生成 雪花算法详解及其他用法
  10. iso27001信息安全体系认证意义
  11. 怎么安装java_怎么安装打印机到电脑步骤
  12. labelImg ZeroDivisionError: float division by zero解决办法
  13. Excel使用Alt+Enter在单元格内换行
  14. 数据库(笔记)——三个世界与数据模型
  15. java SWT:MouseEvent,KeyEvent中stateMask字段的用法
  16. 2021-2027全球与中国城市空中交通市场现状及未来发展趋势
  17. 【惊呼】微信最多可以加多少好友,真正原因可能出乎你的想象!
  18. [每天读一点英文:那些给我勇气的句子]The Daffodil Principle
  19. Win10连接Bose QC30蓝牙耳机 已配对但连接不成功
  20. 10年期国债利率笔记

热门文章

  1. 批处理命令set截取字符详解
  2. linux内核部件分析之——设备驱动模型之class
  3. matlab中的reshape函数用法
  4. 突然明白了如何看待细枝末节
  5. Android 通过Service单独进程模仿离线推送 Server Push
  6. [置顶] SQL注入安全分析
  7. 挂载WebDav提供的网络存储----Client端
  8. 关于OSPF---1
  9. Web2.0时代,你得到什么?
  10. windows10下Anaconda spyder安装CRF++的python接口