C语言进阶——文件的读写(文件使用方式、文件的顺序读写、常用函数、fprintf、fscanf)

简介: C语言进阶——文件的读写(文件使用方式、文件的顺序读写、常用函数、fprintf、fscanf)

文件使用方式

fopen函数中详细的各种使用方式 image.png

文件的顺序读写

常用函数 image.png

用法示例

fprintf

#include <stdio.h>
#include <errno.h>
 
struct Client
{
  int amount;
  char limit[10];
  char overdue[5];
  char address[20];
  char name[10];
  int appointment_time;
};
typedef struct Client Client;
 
int main()
{
  Client c1 = { 0};
  scanf("%d %s %s %s %s %d", &c1.amount, c1.limit, c1.overdue, c1.address, c1.name, &c1.appointment_time);
  FILE* pf = fopen("test.txt", "w");
  if (pf == NULL)
  {
    perror(fopen);
    return 1;
  }
 
  fprintf(pf, "数量:%d\n额度:%s\n是否逾期:%s\n地址:%s\n姓氏:%s\n预约时间:%d", c1.amount, c1.limit, c1.overdue, c1.address, c1.name, c1.appointment_time);
 
  fclose(pf);
  pf = NULL;
  return 0;
}

运行程序,输入客户信息:

然后查看文件“test.txt”:

可以发现已经成功把简单信息输出到了文件里面:

fscanf

#include <stdio.h>
#include <errno.h>
 
struct Client
{
  int amount;
  char limit[10];
  char overdue[5];
  char address[20];
  char name[10];
  int appointment_time;
};
typedef struct Client Client;
 
int main()
{
  Client c1 = { 0 };
  /*scanf("%d %s %s %s %s %d", &c1.amount, c1.limit, c1.overdue, c1.address, c1.name, &c1.appointment_time);*/
  FILE* pf = fopen("test.txt", "r");
  if (pf == NULL)
  {
    perror("fopen");
    return 1;
  }
 
  fscanf(pf, "%d %s %s %s %s %d", &c1.amount, c1.limit, c1.overdue, c1.address, c1.name, &c1.appointment_time);
 
  printf("数量:%d\n额度:%s\n是否逾期:%s\n地址:%s\n姓氏:%s\n预约时间:%d", c1.amount, c1.limit, c1.overdue, c1.address, c1.name, c1.appointment_time);
 
  fclose(pf);
  pf = NULL;
  return 0;
}

先给text文件录入对应信息,使得fscanf来输入信息:

运行程序,从文件text.txt中读入信息,最终我们把信息打印出来:

如果文件不存在 ,则会报错:

任何一个C程序,只要运行起来就会默认打开3个流:


FILE* stdin -标准输入流(键盘)


FILE* stdout -标准输出流(屏幕)


FILE* stderr -标准错误流(屏幕)


所以,我们也可以用fprintf函数输出到屏幕中:

fprintf(stdout,"%d", c1.amount);

end



目录
相关文章
|
3天前
|
安全 C语言
【C语言基础】:内存操作函数
【C语言基础】:内存操作函数
|
3天前
|
编译器 C语言 C++
【C语言基础】:字符函数和字符串函数-2
【C语言基础】:字符函数和字符串函数
|
3天前
|
C语言
【C语言基础】:字符函数和字符串函数-1
【C语言基础】:字符函数和字符串函数
TU^
|
4天前
|
编译器 程序员 Serverless
C语言之函数
C语言之函数
TU^
4 0
TU^
|
4天前
|
机器学习/深度学习 C语言
C语言之函数递归
C语言之函数递归
TU^
7 1
|
4天前
|
C语言
C语言——字符串操作函数
C语言——字符串操作函数
5 0
|
4天前
|
机器学习/深度学习 算法 C语言
【C语言基础】:函数递归详解
【C语言基础】:函数递归详解
|
C语言 测试技术 C++
|
5天前
|
算法 Unix Linux
C语言随机数的产生(rand、srand、time函数细节讲解)
C语言随机数的产生(rand、srand、time函数细节讲解)