A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝蓝 中级黑马   /  2015-7-15 02:37  /  724 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanf
一、定义
Scanf——Scan Format的缩写、中文为格式输入
它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数头文件: #include <stdio.h>
函数原型:int scanf(const char *format[,argument,…]);
调用形式: scanf("<格式说明字符串>",<变量地址>);
变量地址要求有效,并且与格式说明的次序一致。
二、返回值
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
三、注意问题
(1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。
例:#include<stdio.h>
int main(void)
{
char str[10],*p;
p=str;
scanf("%s",str);
scanf("%s",p);
printf("%s",str);
return 0;
}
(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
(3) scanf()函数中没有精度控制。
如: scanf("%3.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。
(4) scanf中要求给出变量地址,如给出变量名则会出错
如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。
(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。
C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

9 个回复

倒序浏览
总结的好全面啊,值得学习
回复 使用道具 举报
值得大家学习
回复 使用道具 举报
多总结  大家多交流经验啊  学习!
回复 使用道具 举报
不错不错~~
回复 使用道具 举报
加油,支持
回复 使用道具 举报
蓝蓝 中级黑马 2015-7-17 00:34:16
7#
谢谢大家的支持!!!:hug:hug::hug:
回复 使用道具 举报
。。。。。。。。。。。。。。。。。
回复 使用道具 举报
学习了~~~
回复 使用道具 举报
总结的很好,赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马