C语言笔记:格式化输入输出(fprintf、fscanf、sscanf…)
包含以下函数的基本库:stdlib.h
-
fprintf
int fprintf(FILE *stream, const char *format,...)
fprintf函数按照format说明的格式对输出进行转换,并写到stream流中。返回值是实际写入的字符数。出错则返回一个负值。
fprintf(stdout,…)等价于printf(…);
-
sprintf
int sprintf(char *s, const char *format,...)
与printf函数基本相同,但其输出将被写到字符串s中,并以’\0’结尾,s必须足够大。该函数返回不包括’\0’的实际输出字符数。
注意是输出到字符串中,我们不能在显示屏上看到,其实也是一种变相的输入
char *str,str1[20];str=(char *)malloc(20);fscanf(stdin,"%s",str1);sprintf(str,"%s",str1);/*将str1输出到str中*/fprintf(stdout,"%s",str);/*输出str在显示屏上*/
-
fscanf
int fscanf(FILE *stream,const char *format,...)
fscanf(stdin, , )等价于scanf(),根据格式串format从流stream中读取输入,把转换后的值赋给后续各个参数,
其中每个参数必须是一个指针
,格式串format用完时,函数返回被转换并赋值的输入项的数目。char str1[20],str2[20],c; fscanf(stdin,"%s %s %c",str1,str2,&c); printf("%s %s %c",str1,str2,c);
-
sscanf
int sscanf(const char *s,const char *format,...)
与scanf函数基本等价,不同的是sscanf的输入字符来源于字符串s
char s[10]={"abcdwds"}; char *str=(char *)malloc(20); str=(char *)malloc(20); sscanf(s,"%s",str);/*将s的内容输入到了str中*/ printf("%s",str); /*输出abcdwds*/