一、fopen

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

返回值:返回值类型为FILE *,打开文件成功返回指向打开文件的指针,打开文件失败返回空指针(NULL)

代码示例:

 #include <stdio.h>

 void OpenFile(FILE **map);    //打开文件
void JudgeOpenSuc(FILE *judge); //判断文件打开是否成功 int main()
{
FILE *fp; OpenFile(&fp);
JudgeOpenSuc(fp); return ;
} void OpenFile(FILE **map)
{
(*map) = fopen("E:my.txt", "a+");
} void JudgeOpenSuc(FILE *judge)
{
if (judge != NULL)
{
printf("Open successfully\n");
}
else
{
printf("Open failure\n");
}
}

二、fopen_s

函数原型:errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );

返回值:返回值类型位errno_t,打开文件成功返回0,打开文件失败返回非零

代码示例:

 #include <stdio.h>

 const int SUC = ;

 void OpenFile(FILE **map, errno_t *err);    //打开文件
void JudgeOpenSuc(errno_t err); //判断文件打开是否成功 int main()
{
FILE *fp;
errno_t err; OpenFile(&fp, &err);
JudgeOpenSuc(err); return ;
} void OpenFile(FILE **map, errno_t *err)
{
(*err) = fopen_s(map, "E:my.txt", "a+");
} void JudgeOpenSuc(errno_t err)
{
if (err == SUC)
{
printf("Open successfully\n");
}
else
{
printf("Open failure\n");
}
}

三、_wfopen

函数原型:FILE *_wfopen( const wchar_t *filename, const wchar_t *mode );

返回值:返回值类型为FILE *,打开文件成功返回指向打开文件的指针,打开文件失败返回空指针(NULL)

代码示例:

 #include <stdio.h>

 void OpenFile(FILE **map);    //打开文件
void JudgeOpenSuc(FILE *judge); //判断文件打开是否成功 int main()
{
FILE *fp; OpenFile(&fp);
JudgeOpenSuc(fp); return ;
} void OpenFile(FILE **map)
{
(*map) = _wfopen(L"E:my.txt", L"a+");
} void JudgeOpenSuc(FILE *judge)
{
if (judge != NULL)
{
printf("Open successfully\n");
}
else
{
printf("Open failure\n");
}
}

四、_wfopen_s

函数原型:errno_t _wfopen_s( FILE** pFile, const wchar_t *filename, const wchar_t *mode );

返回值:返回值类型位errno_t,打开文件成功返回0,打开文件失败返回非零

代码示例:

 #include <stdio.h>

 const int SUC = ;

 void OpenFile(FILE **map, errno_t *err);    //打开文件
void JudgeOpenSuc(errno_t err); //判断文件打开是否成功 int main()
{
FILE *fp;
errno_t err; OpenFile(&fp, &err);
JudgeOpenSuc(err); return ;
} void OpenFile(FILE **map, errno_t *err)
{
(*err) = _wfopen_s(map, L"E:my.txt", L"a+");
} void JudgeOpenSuc(errno_t err)
{
if (err == SUC)
{
printf("Open successfully\n");
}
else
{
printf("Open failure\n");
}
}

五、fscanf、fgetc、fgets、fscanf_s

fscanf()

函数原型:int fscanf (FILE *fp, const char *format, ……);

返回值:参数列表中被成功读取的参数个数

代码示例:

 char ch;
fscanf(fp, "%c", &ch);

fgetc()

函数原型:int fgetc( FILE *stream );

返回值:读取成功则以int形式读取的字符对应的值(注意是int类型,如果用char类型的变量来接收返回值可能会导致数据截断),读取失败返回EOF

代码示例:

 int ch;
ch = fgetc(fp);

fgets()

函数原型:char *fgets( char *str, int numChars, FILE *stream );

返回值:读取成功时返回字符数组首地址,也即 str;读取失败时返回 NULL

代码示例:

char *p;
char ss[]; p = fgets(ss, ,fp);
if (p != NULL)
{
printf("%s", ss);
}

fscanf_s()

函数原型:int fscanf_s( FILE *stream, const char *format [, argument ]... );

返回值:返回成功读取的参数数量

代码示例:

 char ss[];
int k; k = fscanf_s(fp, "%s", ss, _countof(ss));
printf("%s", ss);

文件操作之打开文件与读写文件——C语言的更多相关文章

  1. 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作

    原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...

  2. C++文件操作(输入输出、格式控制、文件打开模式、测试流状态、二进制读写)

    1.向文件写数据 头文件#include <ofstream> ①Create an instance of ofstream(创建ofstream实例) ②Open the file w ...

  3. C++文件操作:打开文件和写入文件

    如果程序的运行结果仅仅显示在屏幕上,当要再次查看结果时,必须将程序重新运行一遍:而且,这个结果也不能被保留. 如果希望程序的运行结果能够永久保留下来,供随时查阅或取用,则需要将其保存在文件中. 文件分 ...

  4. C++文件操作:打开文件和写入文件 zz

    http://www.weixueyuan.net/view/5825.html 如果程序的运行结果仅仅显示在屏幕上,当要再次查看结果时,必须将程序重新运行一遍:而且,这个结果也不能被保留. 如果希望 ...

  5. C文件操作之写入字符串到指定文件并在屏幕显示

  6. 10-10Linux的文件操作函数以及所需头文件

    Linux的基本文件操作函数     Linux通过相应的对文件的IO函数来实现对文件的操作,这些函数通常被称作"不带缓冲的IO",这是因为他们都是通过调用Linux的内核调用来实 ...

  7. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  8. Spark RDD/Core 编程 API入门系列之动手实战和调试Spark文件操作、动手实战操作搜狗日志文件、搜狗日志文件深入实战(二)

    1.动手实战和调试Spark文件操作 这里,我以指定executor-memory参数的方式,启动spark-shell. 启动hadoop集群 spark@SparkSingleNode:/usr/ ...

  9. (文件操作)Android相关的File文件操作

    判断文件是否存在: /** * 判断文件是否存在 * * @param path 文件路径 * @return [参数说明] * @return boolean [返回类型说明] */ public ...

随机推荐

  1. (转载):nmon使用

    转:http://www.cnblogs.com/mululu/p/6398483.html 博客园 首页 新随笔 联系 管理 订阅 随笔- 76  文章- 1  评论- 2  Nmon的安装及使用 ...

  2. mysql5.7 源码安装步骤

    操作系统:centos 7 mysql版本:5.7  下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-gli ...

  3. Linux下MySQL的操作(最全)

    注意:这里以mariadb为例 启动mysql服务 systemctl start mariadb 登录mysql mysql -u root -p SQL语言分类 - 数据定义语言:简称[DDL]( ...

  4. ListView / GirdView Adpater的getView方法,首项多次调用

    通过Adapter为AbslistView提供内容是一个常见的做法:在ListView或者GridView的Adapter中的getView()方法中,加入一行日志,看getView()被调用的情况 ...

  5. [RK3399] 虚拟按键栏显示不全或者方向不对

    CPU:RK3399 系统:Android 7.1 同样的系统代码,换了一个小分辨率的屏,虚拟按键栏就出现显示不全,而且方向不对 出现这种问题的原因是显示密度和屏不匹配,需要适当的降低显示密度即可 d ...

  6. WebService(axis2),整合springmvc

    webservice:不同组织或者部门之间互通数据 https://www.cnblogs.com/buggou/p/8183738.html 1 package com.sh.test; 2 3 4 ...

  7. Java并发包线程池之Executors、ExecutorCompletionService工具类

    前言 前面介绍了Java并发包提供的三种线程池,它们用处各不相同,接下来介绍一些工具类,对这三种线程池的使用. Executors Executors是JDK1.5就开始存在是一个线程池工具类,它定义 ...

  8. selenium WebDriver 清空input的方式

    做自动测试时,经常会出现某些文本框带有默认值的形式,此时我们为了输入我们预期的数据,就需要我们对默认值清楚后做处理.本文章提供四种方法 //方法1 public static void setElem ...

  9. MySQL数据库之多线程备份工具mydumper

    Mydumper介绍: 1)Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具 2)特性: 轻量级C语言编写 执行速度比mysqldump快10倍 快速的文件压缩 支持导 ...

  10. QML之信号与槽

    一.C++的信号和QML的槽 前言: Qt中的信号与槽,通常是一个信号SIGNAL和一个槽SLOT,通过connet连接,而QML中不需要再写槽函数,只需要在合适的地方告诉QML:如果x信号产生则执行 ...