分享

C语言的格式化输入---总结

 豆芽爱尚阅 2015-05-16

函数原名称 scanf()(宽字符为wsanf())

1
int scanf(const char *format,...);
函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。[1] 
其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。
返回值说明 和 举例
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
1
scanf("%d %d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF
且返回值为int型.
例:使用scanf函数输入数据。
1
2
3
4
5
6
7
8
9
10
#include
int main(void)
{
int a,b,c;
printf("输入a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
fflush(stdin);
return 0;
}


函数名: fscanf() (宽字符为wfsanf())


功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。



举例和用法


函数名: fscanf

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。

用法:

int fscanf(FILE*stream,constchar*format,[argument...]);

FILE *stream:文件指针;

char *format:格式字符串;

[argument...]:输入列表。

例如:

FILE* fp;

char a[10];

int b;

double c;

fscanf(fp , "%s %d %lf" , a , &b , &c);

返回值:整型,成功读入的参数的个数



函数名称:sscanf() (宽字符为wssanf())

sscanf() - 从一个字符串中读进与指定格式相符的数据

swscanf()- 用于处理宽字符字符串,和sscanf功能相同。

函数原型:

int sscanf( const char *, const char *, ...);

int sscanf(const char *buffer,const char *format,[argument ]...);

buffer存储的数据

format格式控制字符串

argument 选择性设定字符串

sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。

头文件

#include<stdio.h>

返回值

成功则返回参数数目,失败则返回-1,错误原因存于errno中。

经多次测试,在linux系统中成功返回的是全部参数值减2,例如:

sscanf("1 2 3","%d %d %d",buf1, buf2, buf3); 成功调用返回值为3,即buf的数量(总参数个数减前两个)。

(注意:此处buf均为地址)

说明

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。



此外还有:vscanf ,vsscanf ,vfscanf (vwscanf,vwsscanf,vwfscanf对应的宽字符格式化输入)他们是对以上普通


格式化输入函数的加强版,他们的用法和上面的函数一致的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多