21xrx.com
2024-11-22 06:37:35 Friday
登录
文章检索 我的文章 写文章
【教程】C++文件读写函数
2023-07-02 06:55:35 深夜i     --     --
C++ 文件读写 函数 读取 写入

C++是一种流行的编程语言,它提供了许多函数来帮助程序员完成各种任务。其中,文件读写函数是一个非常重要的类型。在这篇文章中,我们将学习如何使用C++文件读写函数。

一、文件的打开和关闭

在进行文件读写操作之前,我们需要先打开文件。C++提供了几个函数来打开文件,其中最常用的是fopen()函数。该函数的语法如下:

FILE *fopen(const char *filename, const char *mode);

其中,filename是需要打开的文件名,mode是文件打开模式。文件打开模式有以下几种:

- “r”:只读,文件必须存在。

- “w”:写入,如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件。

- “a”:追加,如果文件存在,则在文件末尾添加内容;如果文件不存在,则创建一个新文件。

- “r+”:读写,文件必须存在且可以读写。

- “w+”:读写,如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件。

- “a+”:读写,如果文件存在,则在文件末尾添加内容;如果文件不存在,则创建一个新文件。

打开文件后,我们需要使用fclose()函数来关闭文件,以便于释放文件资源。fclose()函数的语法如下:

int fclose(FILE *stream);

其中,stream是需要关闭的文件指针。

二、文件的读写操作

1.文件的写入

在文件打开模式为“w”或“a”时,我们可以使用fputc()函数将字符写入文件中。该函数的语法如下:

int fputc(int character, FILE *stream);

其中,character是需要写入文件的字符,stream是文件指针。

如果要写入字符串,我们可以使用fputs()函数。该函数的语法如下:

int fputs(const char *str, FILE *stream);

其中,str是需要写入文件的字符串,stream是文件指针。

如果需要写入二进制数据,我们可以使用fwrite()函数。该函数的语法如下:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

其中,ptr是需要写入文件的数据,size是每个数据的大小(单位字节),nmemb是数据的数量,stream是文件指针。

2.文件的读取

在文件打开模式为“r”或“r+”时,我们可以使用fgetc()函数读取文件中的字符。该函数的语法如下:

int fgetc(FILE *stream);

其中,stream是文件指针。

如果需要读取整个字符串,我们可以使用fgets()函数。该函数的语法如下:

char *fgets(char *str, int n, FILE *stream);

其中,str是用于存储读取的字符串的数组,n是数组的大小,stream是文件指针。

如果需要读取二进制数据,我们可以使用fread()函数。该函数的语法如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

其中,ptr是用于存储读取数据的缓冲区,size是每个数据的大小(单位字节),nmemb是数据的数量,stream是文件指针。

三、示例代码

下面是一个简单的示例代码,演示了如何使用C++文件读写函数:


#include <stdio.h>

int main()

{

  FILE *fp;

  char ch;

  char str[] = "hello world\n";

  int i;

  int arr[] = 3;

  fp = fopen("test.txt", "w+");

  if (fp == NULL)

  {

    printf("Open file failed\n");

    return -1;

  }

  fputc('A', fp);

  fputs(str, fp);

  for (i = 0; i < 5; i++)

  {

    fwrite(&arr[i], sizeof(int), 1, fp);

  }

  fseek(fp, 0, SEEK_SET);

  ch = fgetc(fp);

  printf("ch=%c\n", ch);

  fgets(str, sizeof(str), fp);

  printf("str=%s", str);

  for (i = 0; i < 5; i++)

  {

    fread(&arr[i], sizeof(int), 1, fp);

  }

  for (i = 0; i < 5; i++)

  {

    printf("arr[%d]=%d\n", i, arr[i]);

  }

  fclose(fp);

  return 0;

}

通过运行以上代码,我们可以在当前目录下生成一个名为“test.txt”的文件,并且文件内容如下:


Ahello world

同时,程序还会读取该文件中的数据,并依次输出到屏幕上。这样,便完成了对C++文件读写函数的初步认识。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复