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。