神秘博客

fopen与fopen_s打开文件区别

fopen:

FILE * fp;

fp = fopen(文件名,"r");

 

打开文件成功的话返回文件指针(赋值给fp),打开失败则返回NULL值。

fopen_s:

FILE * fp;

errno_t err;

err = fopen_s(&fp,文件名,"r");

打开文件成功返回0,失败返回非0。

//使用标准 I/O
#include <stdio.h>
#include <stdlib.h>  //提供 exit() 原型

int main(int argc, char *argv[])
{
  int ch;   //读取文件时, 储存每个字符的地方
  FILE *fp;   //文件指针
  errno_t err;   //返回错误代码
  unsigned long count = 0;


  if (argc != 2)
  {
    printf("用法: %s 文件名\n", argv[0]);
    exit(EXIT_FAILURE);
  }
 //返回错误代码     文件指针地址 文件名    以读模式打开
  if ((err = fopen_s(&fp, argv[1], "r")) != 0)
  {
    printf("无法打开 %s\n", argv[1]);
    exit(EXIT_FAILURE);
  }
  while ((ch = getc(fp)) != EOF)
  {
    fputc(ch, stdout);  //与 putchar(ch); 相同
    count++;
  }
  fclose(fp);
  printf("文件 %s 有 %u 个字符\n", argv[1], count);

  return 0;
}
//使用标准 I/O
#include <stdio.h>
#include <stdlib.h>  //提供 exit() 原型

int main(int argc, char *argv[])
{
  int ch;   //读取文件时, 储存每个字符的地方
  FILE *fp;   //文件指针
  unsigned long count = 0;


  if (argc != 2)
  {
    printf("用法: %s 文件名\n", argv[0]);
    exit(EXIT_FAILURE);
  }
 
  if ((fp = fopen(argv[1], "r")) == NULL)
  {
    printf("无法打开 %s\n", argv[1]);
    exit(EXIT_FAILURE);
  }
  while ((ch = getc(fp)) != EOF)
  {
    putc(ch, stdout);  //与 putchar(ch); 相同
    count++;
  }
  fclose(fp); //关闭文件
  printf("文件 %s 有 %u 个字符\n", argv[1], count);

  return 0;
}

 

版权说明:
点赞
  1. 神秘说道:

    :huaji: 签到成功!签到时间:下午3:42:32,每日打卡,生活更精彩哦~

  2. 神秘说道:

    :huaji18: 签到成功!签到时间:下午3:47:20,每日打卡,生活更精彩哦~

    1. 神秘说道:

      @神秘:a: 看看

发表评论

电子邮件地址不会被公开。 必填项已用*标注

觉得文章有用就请我吃包辣条吧

微信扫一扫打赏