Scanf函数
1.功能:接受用户从键盘中键入的数据,并按照格式控制符的要求进行类型转换,再送到地址表列中对应的变量存储单元。
2.一般形式:scanf(“输入格式串”,输入项地址表列);
3.返回类型:scanf函数返回成功读入的数据项数,读入数据时出现错误或者遇到了“文件结束”则返回EOF。
4.输入格式串:
格式串 | 含义 | 备注 | 延伸1 | 延伸2 | 延伸3 | |||
---|---|---|---|---|---|---|---|---|
%d | int | %ld | long int | %md | m为指定的输出字段的宽度 | %.nd | n为指定的输出实数的小数位 | |
%f | float | %lf | double | |||||
%o | 八进制int | |||||||
%x | 十六进制int | |||||||
%u | unsigned-无符号整形 | %lu | long unsigned-无符号长整形 | |||||
%e | 以指数形式输出实数 | |||||||
%g | 根据数值的大小,自动选f格式或e格式输出实数 | 选择输出是占宽度较小的一种,不输出无意义的零。 | ||||||
%c | char-一个字符 | |||||||
%s | string-一个字符串 | |||||||
%p | pointer-指针的值-十六进制整形- | 相当于0x%x,常用在变量地址的输出 | ||||||
%[scanfset] | 功能见下方 |
5.scanf函数输入详解:
(1)用scanf函数输入字符串,以及scanf和gets函数的区别:
①char string[];scanf(“%s”,string);//输入字符串到字符数组,遇到回车键,Tab,空格输入结束。
②char string[];gets(string);//可以接收空格,tab,遇到回车键结束。
(2)scanfset 有两种形式:
①scanf(“%[bulabula~]”,str);//一种是以非 “^” 字符开头的 scanset , 表示在读入字符串时将匹配所有在 scanfset 中出现的字符,遇到非scanfset 中的字符时输入就结束;
②scanf(“%[^bulabula~]”,str);//另外一种形式是以 “^” 字符开头的scanfset ,表示在读入字符串时将匹配所有不在scanfset 中出现的字符,遇到scanfset 中的字符输入就结束。
比如:scanf(“%[^\n]”,str);//表示遇到回车键时字符串输入结束,可接收空格等特殊字符。
6.注意事项:
①scanf函数在输入过程中如遇格式错误会立即停止输入。
引用:格式字符-百度百科,《计算机程序设计-C语言版》