/*
对比
scanf/fscanf/sscanf
printf/fprintf/sprintf
1.scanf:针对标准输入的格式化输入语句
printf:针对标准输出的格式化输出语句
2.fscanf:针对所有输入流的格式化输入语句
fprintf:针对所有输出流的格式化输出语句
3.sprintf:把一个格式化的数据转换成字符串
int sprintf ( char * str, const char * format, ... );
把一个格式化的数据写到字符串str中,本质是把格式化的数据转换成字符串。
sscanf:从一个字符串中转换出一个格式化的数据
int sscanf ( const char * s, const char * format, ...);
从s中读取数据,s时字符串,读取出来的数据转换成格式化
------------
*/
struct S
{
char name[20];
int age;
float score;
};
int main()
{
struct S s = { "zhangsan",50,50.5f };
struct S tmp = { 0 };
char buf[100] = { 0 };
//将s中的格式化的数据转换成字符串存储到buf中
// <----
// "%s\n%d\n%f\n"按照这种形式转换成字符串
sprintf(buf, "%s\n%d\n%f\n", s.name, s.age, s.score);
printf("%s\n", buf);
// ------>
sscanf(buf, "%s %d %f", tmp.name, &tmp.age, &tmp.score);
printf("%s %d %f", tmp.name, tmp.age, tmp.score);
return 0;
}