对比下列这三组函数
scanf/fscanf/sscanf
printf/fprintf/sprintf
scanf函数:是针对标准输入流的格式化输入语句;
printf函数:是针对标准输出流的格式化输出语句;
fscanf函数:是针对所有输入流的格式化输入语句;
fprintf函数:是针对所有输出流的的是化输出语句;
sscanf函数:从一个字符串中转化出一个格式化的数据;
sprintf函数:将格式化的数据写成字符串,其本质是将格式化数据转化为字符串。
在前面我们已经学习过了前两组函数,下面来学习下面一组函数:
sprintf函数:(这里的static修饰是因为程序中的堆栈满了,将这个字符创建在静态区中)。
将格式化的数据写进字符串中,他有好几个参数:第一个参数是:要写入的字符串的起始地址,其他参数与scanf的参数是一样的。
sscanf函数:与sprintf函数的参数定义是大同小异的,我们需要将第一个参数的指针填对。
这两个函数的用途:
在前端中获取一些信息,如名字,年龄,电话等等。将会有一个字符串传给后端,后端接收将字符串转化为结构体的格式化,然后再将信息转化为字符串传给前端,合法序列化 。
文件的随机读写:
有三个函数(fseek,ftell,rewind);
第一个函数是fseek函数,fseek函数有三个参数:第一个参数对应流,第二个参数是当前文件地址的位置的偏移量,第三个参数是一个宏,有三个取值如图所示:
SEEK_SET是指文件的起始位置,SEEK_CUR是当前文件指针的位置,SEEK_END是文件的末尾。
ftell函数传入流能告诉此时指针的位置相对于起始位置的偏移量,rewind函数是让文件指针返回到文件的起始位置。