C语言中的输入输出函数详解与比较scanf,sscanf,printf,sprintf,fprintf

        这些函数对于从事C语言开发的人员来说经常用到。大学期间学是软件工程,对于c语言接触的不多,既然从事相关的开发工作,自然要多一些记录了,便于查阅和复习,加深自己的理解。这几个函数很多人都遇到过,还是有些需要注意的地方。这里只介绍工作中经常用到的一些参数,以后遇到了再逐渐添加。

       函数原型 int   scanf(const char* fmt,[argument]...)    从标准输入中读入,函数返回成功赋值的项数,到文件结尾或者出错时候返回EOF,  这个函数自然不必多说,接触过C语言的想必都知道。                                

      函数原型 int  sscanf(const char *buf, const char* fmt,[argument]...) 从一个字符串中读进与指定格式指定相符的数据。返回格式化输入参数的数目。与scanf有相之处,前者从标准设备中输入,后者从字符串中输入,在读取文件中的数据时经常用到。sscanf支持集合操作,下面通过一些例子熟悉它的使用:

     

输出结果:

       

这是sscanf最常见的用法了。*的使用,这个也经常用到,对字符串的某些数据进行过滤。

    

输出结果

     

这个可是很有用的啦,比如上例中的字符串中有7个数据,而我们能够用到的只有其中3个,加一个*就不读入相关的信息了,那么就不需要定义7个变量了,只要定义三个变量就行了。

   下面的一些用法也比较常见:

   (1) 取指定长度的字符串:

   sscanf("asdfgh","%3s",buf);

   printf("buf = %s\n",buf);

输出结果:

     buf = asd

   (2)取包含指定字符集的字符串:

   sscanf("321dfadCACAcddscd","%[1-9a-z]",buf);

    printf("buf = %s\n",buf);

输出结果:

    buf = 321dfad

遇到不是指定字符集的第一个字符串,就终止了。结果不是 buf = 321dfadcddscd 哦。如果想使结果是 buf = 321dfadcddscd ,可是跳过中间大写字母,那么可以这样:

   sscanf("321dfadCACAcddscd","%[1-9a-z]%*[A-Z]%[1-9a-z]",buf,buf1);

  strcat(buf,buf2);   

   (3)取到指定字符集为止的字符串:

     sscanf("cdacdfaDCACA","%[^A-Z]",buf);

     printf("buf = %s\n",buf);

输出结果

    buf = cdacdfa

    printf,sprintf,fprintf的区别:

    printf把格式化的数据输出到标准输出设备中,sprintf把格式化的数据输出到字符串中,函数原型是int sprintf(char  *buf ,const char *fmt,[arguments]...),fprintf是把格式化的数据输出到一个文件/流中。

使用方法是大同小异的。根据需要进行选择


 






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值