用函数fopen_s打开数据文件
2017-05-05 10:56
447 查看
1.一个实例
例子选自谭浩强老师的《C语言程序设计(第四版)》(其实我觉得叫做C语言入门更贴切)#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
errno_t err; //不同点1
char 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()函数打开数据文件
- 用函数fopen_s打开数据文件
- C语言学习10:结构体,结构体应用,联合用法,枚举,fopen函数使用,fseek,ftell的作用和文件结束符EOF,数组和文件交换数据,个人信息管理。
- 解析php中的fopen()函数用打开文件模式说明
- 标准IO: 文件的打开与关闭函数 fopen & fclose
- fopen(),fclose()文件打开关闭函数
- 文件的打开 (fopen()函数)
- php 使用fopen函数创建、打开文件详解及实例代码
- php中fopen函数用法详解(打开文件)
- PHP fopen()函数 打开文件
- matlab中fopen函数在指定文件打开的实例如下:
- php中fopen() 函数用打开文件模式说明
- //首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
- php 在linux 用fopen() 函数打开,file_get_contents(),fread()函数 读取 另外一台服务器映射过来的文件 总是返回false,null的情况。
- C语言read()函数:读文件函数(由已打开的文件读取数据)
- php的fopen函数打开文件详解以及如何打开中文名文件
- fopen()函数以"a+"方式打开一个不存在的文件后读写出现问题
- C/C++打开文件函数fopen和fopen_s用法的比较
- PHP语言 fopen()函数不能打开文件的问题
- 解析php中的fopen()函数用打开文件模式说明