函数原名称 scanf()(宽字符为wsanf())1 | int scanf ( const char *format,...);
|
函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。[1] 其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。 返回值说明 和 举例 scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。 如: 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF。 例:使用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对应的宽字符格式化输入)他们是对以上普通
的格式化输入函数的加强版,他们的用法和上面的函数一致的。 |
|