一,fprintf 的介绍和使用
1. 函数介绍
1.1 功能:把数据以格式化的形式写入指定的输出流上。
1.2 参数:该函数的参数与 printf 函数的参数类似,只是多了一个文件流。
2. 函数使用
此时把数据以格式化的形式写入指定的输出流上
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> struct S { char name[20]; int age; float score; }; int main() { struct S s = { "张三",20,65.5f }; //想把s中的数据存写在文件test.txt中 FILE* pf = fopen("test.txt", "w"); if (pf == NULL) { perror("fopen"); return 1; } //写文件 -- 是以文本的形式写进去的 fprintf(pf, "%s %d %f", s.name, s.age, s.score); fclose(pf); pf = NULL; return 0; }
结果如下:
二,fscanf 的介绍和使用
1. 函数介绍
1.1 功能:从指定的输入流上读取格式化数据。
1.2 参数:该函数的参数与 scanf 函数的参数类似,只是多了一个文件流。
2. 函数使用
此时是从文件 test.txt 中读取数据
struct S { char name[20]; int age; float score; }; int main() { struct S s = { 0 }; //想从test.txt文件中把数据放入s FILE* pf = fopen("test.txt", "r"); if (pf == NULL) { perror("fopen"); return 1; } //读文件 fscanf(pf, "%s %d %f", s.name, &(s.age), &(s.score)); //想打印在屏幕上看看 printf("%s %d %f", s.name, s.age, s.score); fclose(pf); pf = NULL; return 0; }
结果如下:
三,sprintf 的介绍和使用
1. 函数介绍
1.1 功能:把格式化的数据写入到字符串中。其实就是把格式化的数据转化成字符串了。
1.2 参数:该函数的参数与 printf 函数的参数类似,只是多了一个字符串指针。
2. 函数使用
此时把结构体中格式化的数据转化成字符串,再直接以字符串的形式打印。
struct S { char name[20]; int age; float score; }; int main() { char buf[200] = { 0 }; struct S s = { "张三",20,65.5f }; //把结构体中格式化的数据转化成字符串 sprintf(buf, "%s %d %f", s.name, s.age, s.score); //直接以字符串的形式打印 printf("%s\n", buf); return 0; }
输出结果如下:
四,sscanf 的介绍和使用
1,函数介绍
1.1 功能:在字符串中读取格式化的数据。
1.2 参数:该函数的参数与 scanf 函数的参数类似,只是多了一个字符串指针。
2,函数使用
再把 buf 字符串中的数据读入结构体 t 中。再打印结构体t中的数据。
struct S { char name[20]; int age; float score; }; int main() { char buf[200] = { 0 }; struct S s = { "张三",20,65.5f }; //把结构体中格式化的数据转化成字符串 sprintf(buf, "%s %d %f", s.name, s.age, s.score); //直接以字符串的形式打印 printf("%s\n", buf); struct S t = { 0 }; //把buf中的字符串转化成结构体t中格式化的数据 sscanf(buf, "%s %d %f", t.name, &(t.age), &(t.score)); //打印结构体t中的数据 printf("%s %d %f\n", t.name, t.age, t.score); return 0; }
输出结果如下:
五,总结