文件的读写(下) 对比 scanf/fscanf/sscanf printf/fprintf/sprintf

本文对比了C语言中的scanf,fscanf,sscanf用于格式化输入与输出的功能,以及printf,fprintf,sprintf在处理字符串格式化方面的使用,通过实例展示了如何在结构体间转换数据
摘要由CSDN通过智能技术生成

/*
    对比
    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;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值