sscanf sprintf 和 fread fwrite函数

sscanf

作用:从一个字符串中读进与指定格式相符的数据。

原型:int sscanf(const char *str,const char *format,......);

说明:sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。转换后的结果存于对应的参数内。成功则返回参数数目,失败则返回0。sscanf与scanf类似,都是用于输入的,只是scanf以键盘(stdin)为输入源,sscanf以固定字符串为输入源。sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。

用法:<1>取指定长度的字符串。//sscanf("12345","%4s",str);

                                               //printf("str=%s\n",str);(显示结果str=1234)

          <2>格式化时间。

          <3>读入字符串。//sscanf("12345","%s",str);

                                    // printf("str=%s\n",str);(显示结果str=12345)

          <4>%*d和 %*s加了星号(*)表示跳过此数据不读入。//sscanf("12345+acc","%^+",str);

                                                                                         //printf("str=%s\n",str);(显示结果str=acc)

          <5>取到指定字符为止 的字符串。

          <6>取到指定字符集为止的字符串。

sprintf

作用:字符串格式化命令,主要功能是把格式化的的数据写入某字符串中

原型:int sprintf(char *buffer,const char * format[,arguement]......)。除了前两个参数类型固定以外,后面可接任意多个参数。

说明:sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者直接在命令行上输出。最常见的应用之一是把整数打印到字符串中。

用法:<1>把整数123打印成一个字符串保存在s中。sprintf(s,“%d”,123);//产生”123“。

          <2>可以指定宽度,不足的左边补空格。sprintf(s,"%8d%8d",123,4567);//产生“1234567”。

          <3>也可以左对齐。sprintf(s,"%-8d%8d",123,4567);//产生“123 4567”

          <4>可按照十六进制打印。sprintf("%8x",4567);//小写16进制,宽度占8个位置,右对齐。

fread  fwrite

作用:以记录为单位的I/O函数,用于读取二进制文件的输入和输出。

说明:fread为封装好的库函数,而read为系统函数,fread效率更高,功能更强大,可以读结构体的二进制文件。如果底层的操                 作,用到文件描述符,用read更好。

原型:#include<stdio.h>

           size_t fread(void *ptr,size_t,size_t size,size_t nmemb,FILE *stream);

           size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);

fread和fwrite用于读写记录,这里的记录是指一串固定字节的长度,比如一个int,一个结构体或者一个定长数

组。ptr为指向缓冲区保存或读取的数据。size为控制记录大小,nmemb指出要读或写多少条记录。fread和fwrite返回的记录数有可能小于nmemb指定的记录数,。读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件文件末尾时返回的记录数小于nmemb,也可能返回0。    

用法:char buf[100];

           size_t temp=fread(buf,10,1,p);

这个语句表示,每次读取10个字节到buf里(10x1),如果读取的字节数少于10个返回0。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值