用函数fopen_s打开数据文件
1.一个实例
例子选自谭浩强老师的《C语言程序设计(第四版)》(其实我觉得叫做C语言入门更贴切)
#include<stdio.h> #include<stdlib.h> int main() {FILE *fp;errno_t err; //不同点1char ch, filename[10];printf("请输入所用的文件名:");scanf_s("%s", filename,10);if ((err = fopen_s(&fp, filename, "w")) !=0) //不同点2{printf("无法打开此文件\n"); //如果打不开,就输出打不开exit(0); //终止程序}ch = getchar(); //用来接收最后输入的回车符printf("请输入一个准备存储到磁盘的字符串(以#结束):");ch = getchar(); //用来接收从键盘输入的第一个字符while (ch != '#') //当输入“#”时结束循环{fputc(ch, fp); //向磁盘输出一个字符putchar(ch); //将输出的字符显示在屏幕上ch = getchar(); //再接收从键盘输入的一个字符}fclose(fp); //关闭文件putchar(10); //向屏幕输出一个换行符return 0; }
2.分析
fopen_s函数声明如下: errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );
fopen函数的返回值是一个指向文件的指针,而fopen_s函数的返回值则不同,正确返回0,不正确返回非0。
要定义一个变量来接收fopen_s函数的返回值,即errno_t err; 其中errno_t是int的别名,typedef int errno_t;即err是个整型值,用来接收fopen_s函数的返回值。通过判断err的值是否为0,可以知道打开数据文件成功与否,这是不同点1。
判断打开成功与否fopen_s用(err = fopen_s(&fp, filename, “w”)) !=0,因为它的返回值是整型,而fopen判断打开成功与否,用fp = fopen(filename, “w”)) ==NULL因为它的返回值是指针,打开失败返回空指针NULL,这是不同点2。
FILE *fp;定义fp是一个指向FILE类型数据的指针变量,&p就是一个指向FILE类型数据的指针变量的地址,也就是一个<指向FILE类型数据的指针变量>的指针变量。有点绕,其实只要记住,先如FILE *fp;定义一个指向FILE类型数据的指针变量,在fopen_s的参数,在定义的指针变量前加&即可。
用函数fopen_s打开数据文件相关推荐
- vs2008/2010安装无法打开数据文件解决方案
本人在安装VS2008或2010时,在开始的第一个页面(进度条大约加载到75%左右),提示"无法打开数据文件 'C:/Documents and Settings/Administrator ...
- MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法
1.打开数据文件 1.1 直接打开文件 PATHNAME = 'C:\Users\s55\Desktop\dat'; FILENAME = '\data_1.dat'; str0=strcat(PAT ...
- load函数无法打开MAT文件:不是二进制 MAT 文件。请尝试执行 load -ASCII 以便以文本形式读取。
load函数无法打开MAT文件 问题描述 报错:不是二进制 MAT 文件.请尝试执行 load -ASCII 以便以文本形式读取. 原因分析: Matlab2021a及以下版本用load函数读取MAT ...
- php fopen创建文件,php fopen函数用法(打开创建文件)
php教程 fopen函数用法(打开创建文件) 在很多时间我们都需要创建文件特别是生成静态页面的时间,我们在php中就常常会用到fopen这个函数来新建文件,它的原是是如何文件存在就追加,不存在可以创 ...
- php fopen函数php,php fopen函数用法(打开创建文件)_PHP教程 - fopen
php教程 fopen函数用法(打开创建文件) 在很多时间我们都需要创建文件特别是生成静态页面的时间,我们在php中就常常会用到fopen这个函数来新建文件,它的原是是如何文件存在就追加,不存在可以创 ...
- Postman高级应用——流程控制、调试、公共函数、外部数据文件
postman客户端下载地址:https://www.getpostman.com/apps 流程控制 流程控制简言之就是设置接口的执行顺序,流程控制只有在collection runner或Newm ...
- python调用文件对象所提供的读取数据的函数_python读写数据文件
1. read.readline.readlines (1)open函数 如果你想用python读取文件(如txt.csv等),第一步要用open函数打开文件. open()是python的内置函数, ...
- 利用dbms_backup_restore函数来恢复数据文件
本实验对数据文件丢失,控制文件丢失,但是RMAN的备份信息和备份日志存在的时候使用. 控制文件的丢失恢复参看http://luoping.blog.51cto.com/534596/294164. 下 ...
- 安装VS2010 无法打开数据文件'C:\Users\Administrator\AppData\Local\Temp\SIT12124.tmp\deffactory.dat的解决方法...
今天用win7安装vs2010时候 出现: 解决方法:进入这个文件路劲:C:\Users\Administrator\AppData\Local\Temp\SIT12124.tmp 用记事本打开 'd ...
最新文章
- BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40
- 浅谈三个星期零基础入门学习Thinkphp5开发restful-api接口的心得和总结
- CodeForces - 1408E Avoid Rainbow Cycles(思维+最大生成树)
- 再获绿色等级5A称号!揭开腾讯数据中心节能环保黑科技
- (Docker实战) 第五篇:建立持续集成环境02
- 操作系统 —— 课程概述
- ToDictionary
- N 层应用程序中的数据检索和 CUD 操作 (LINQ to SQL)
- 3月27日外电头条:Windows的开源野心
- python接口自动化(十)--post请求四种传送正文方式(详解)
- 17011301(UE4的AnimDynamic)
- Android课程---Android Studio使用小技巧:提取方法代码片段
- 人人都想自学python_人人都想自学Python,为什么坚持下来的没几个?
- JDBC学习总结4-------简化DAO的写法
- Fiddler2 http抓包和https抓包
- Sprintf函数用法
- 外卖霸王餐返利小程序开发制作功能介绍
- JavaScript/js 转 Python 代码转换神器 jiphy
- STM32F4 ETR计数
- Qt高质量的开源项目合集