admin管理员组

文章数量:1794759

用函数fopen

用函数fopen

用函数fopen_s打开数据文件

 

1. fopen_s函数的用法

fopen_s函数声明如下:

errno_t fopen_s ( FILE** pFile, const char *filename, const char *mode );

 

  • fopen_s函数有3个参数,它的调用方式为:fopen_s(指针,文件名,使用文件方式);
  • FILE** pFile:其中指针是用来接收 <指向目标文件的指针> 的指针。

    • fopen函数的返回值就是这里的FILE** pFile
    • 参数定义:FILE *fp; fp是一个指向FILE类型数据的指针;&p就是指向FILE类型数据的指针的地址,也就是<指向FILE类型数据的指针变量>的指针。只要记住,fopen_s的参数用法类似如下:FILE *fp; fopen_s(&fp, filename, "w")
  • fopen_s函数的返回值与fopen不同。正确打开返回0,不正确返回非0。

    • 要定义一个变量err来接收fopen_s函数的返回值,即:errno_t err; 其中errno_t是int的别名,typedef int errno_t;,即err是个整型值。通过判断err的值是否为0,可以知道打开数据文件成功与否。

    • 判断打开成功与否fopen_s用:(err = fopen_s(&fp, filename, “w”)) !=0

    • 而fopen判断打开成功与否,用:fp = fopen(filename, “w”)) == NULL 打开失败返回空指针NULL。


2. 程序实例

从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。

#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; }

 

C程序输出结果:

请输入所用的文件名:file1.dat 请输入一个准备存储到磁盘的字符串(以#结束):computer and c# computer and c 请按任意键继续. . .

本文标签: 函数fopen