5. fprintf和fscanf的使用 -- 以指定格式写入 / 读取文件中内容
1. 说明
项目中有时会需要从某个文件中保存或者读取指定的配置内容,而且在文件中一般是按照实现指定好的格式进行保存的。那么,在linux系统中提供了两个比较有用的函数,可以很方便的实现文件中固定格式的内容读写操作,分别是fprintf和fscanf。
2. 简单实用
2.1 fprintf
这个函数可以根据打开的文件描述符,在文件中写入指定格式的内容,具体用法请看下面的代码:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
4 #include <sys/types.h>
5 #include <iostream>
6 #include <string>
7
8 int main()
9 {
14 FILE* fd = fopen("./test.txt", "w+");
15
16 if(NULL == fd)
17 {
18 std::cout << "fopen failed..." << std::endl;
19 }
20 else
21 {
22 //write data
23 fprintf(fd, "name : xiaoming\n");
24 fprintf(fd, "sex : man\n");
25 fprintf(fd, "age : 18\n");
26 }
27
28 //close fd
29 if(NULL != fd)
30 {
31 fclose(fd);
32 fd = NULL;
33 }
34 return 0;
35 }
代码运行后,会在test.txt文件中写入固定格式的内容,如下图所示:
2.2 fscanf
这个函数用于从文件中读取固定格式的内容,它的特点之一就是可以把读取到的内容直接保存到某个变量当中,需要保证的是这个变量和读取的内容的类型需要保持一致,具体用法请看下面的代码:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
4 #include <sys/types.h>
5 #include <iostream>
6 #include <string>
7
8 int main()
9 {
10 char name[28];
11 char sex[28];
12 int age;
13
14 FILE* fd = fopen("./test.txt", "w+");
15
16 if(NULL == fd)
17 {
18 std::cout << "fopen failed..." << std::endl;
19 }
20 else
21 {
22 //写数据到文件中
23 fprintf(fd, "name : xiaoming\n");
24 fprintf(fd, "sex : man\n");
25 fprintf(fd, "age : 18\n");
26 //将文件操作指针移动到首部
27 fseek(fd, 0, SEEK_SET);
28 //开始读取数据,并保存到变量中
29 fscanf(fd, "name : %s\n", name);
30 fscanf(fd, "sex : %s\n", sex);
31 fscanf(fd, "age : %d\n", &age);
32 }
33 //打印输出变量的值
34 std::cout << "name : " << name << std::endl;
35 std::cout << "sex : " << sex << std::endl;
36 std::cout << "age : " << age << std::endl;
37
38 //close fd
39 if(NULL != fd)
40 {
41 fclose(fd);
42 fd = NULL;
43 }
44 return 0;
45 }
输出结果如下图所示:
原文地址:https://blog.csdn.net/FY_13781298928/article/details/144311109
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!