【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
24k纯甄 2024-07-23 10:35:01 阅读 62
目录
一,fprintf 的介绍和使用1. 函数介绍2. 函数使用
二,fscanf 的介绍和使用1. 函数介绍2. 函数使用
三,sprintf 的介绍和使用1. 函数介绍2. 函数使用
四,sscanf 的介绍和使用1,函数介绍2,函数使用
五,总结
一,fprintf 的介绍和使用
1. 函数介绍
1.1 功能:把数据以格式化的形式写入指定的输出流上。
1.2 参数:该函数的参数与 printf 函数的参数类似,只是多了一个文件流。
2. 函数使用
此时把数据以格式化的形式写入指定的输出流上
<code>
#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 中读取数据
<code>
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. 函数使用
此时把结构体中格式化的数据转化成字符串,再直接以字符串的形式打印。
<code>
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中的数据。
<code>
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;
}
输出结果如下:
五,总结
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。