目录
所有函数的头文件都是<stdio.h>
fscanf和fpritnf的使用
fprintf函数
fprintf函数的作用和使用
将数据以格式化形式写入一个流中,printf默认输出流为stdout
和printf相比,fprintf 多了一个参数FILE*stream,这使得fprintf可以在指定流中运用
代码演示
#include<stdio.h>
struct s1 //创建一个结构体
{
int a;
double b;
char c;
};
int main()
{
struct s1 s = { 10,4.0,'1' }; //创建一个结构体变量
FILE* fp = fopen("test.txt", "w"); //以w(可读)形式打开一个文件
if (fp == NULL) //判断是否打开成功
{
perror("fopen");
return 1;
}
fprintf(fp, "%d %lf %c", s.a, s.b, s.c); //将结构体变量中的数据输出到fp流中
return 0;
}
我们打开这个文件,发现里面存储了fprintf输入的数据
fscanf函数
fscanf函数的作用和使用
从流中以格式化形式读取,scanf的默认输入流为stdin
和scanf相比,fscanf 多了一个参数FILE*stream,这使得fscanf可以在指定流中运用
代码演示
这个要读取的文件中存了这些数据
#include<stdio.h>
struct s1 //创建一个结构体
{
int a;
double b;
char c;
};
int main()
{
struct s1 s = { 0 }; //创建一个结构体变量
FILE* fp = fopen("test.txt", "r"); //以r(可读)形式打开一个文件
if (fp == NULL) //判断是否打开成功
{
perror("fopen");
return 1;
}
fscanf(fp, "%d %lf %c", &s.a, &s.b, &s.c); //将fp流中的数据读取到s结构体中
printf("%d %lf %c", s.a, s.b, s.c);
return 0;
}
将读取到的数据存储到s中,并且打印出来,发现成功打印了fp流中的数据
sprintf函数
sprintf函数的作用和使用
将一个数据,以格式化的形式转换成字符串
代码演示
#include<stdio.h>
struct s1 //创建一个结构体
{
int a;
double b;
char c;
};
int main()
{
struct s1 s = { 1,2.0,'3' }; //创建一个结构体变量
char arr[30] = { 0 }; //创建一个字符数组
sprintf(arr, "%d %lf %c", s.a, s.b, s.c); //将s中的数据转换成字符串
printf("%s", arr); //打印这个字符串
return 0;
}
打印的这个为转换后的字符串
sscanf函数
sscanf函数的作用和使用
将字符串转换成格式化的数据
代码演示
#include<stdio.h>
struct s //创建一个结构体
{
int a;
double b;
char c;
};
int main()
{
struct s s1 = { 1,2.0,'3' }; //创建一个结构体变量
struct s s2 = { 0 };
char arr[30] = { 0 }; //创建一个字符数组
sprintf(arr, "%d %lf %c", s1.a, s1.b, s1.c); //将s中的数据转换成字符串
printf("%s\n", arr); //打印这个字符串
sscanf(arr, "%d %lf %c", &s2.a, &s2.b, &s2.c); //将字符串中的数据转换成格式化的数据
printf("%d %lf %c", s2.a, s2.b, s2.c); //打印这个被各耍的数据
return 0;
}