高级语言编程

2024-12-16 16:29:07
推荐回答(1个)
回答1:

这是一个输入函数。其用法:
(1),指定输入列数,系统自动截取,比如:scanf(“%3d”,&a);输入1234;a=123;

(2).*的用法,跳过指定列数.比scanf(“%2d%*3d%d”,&a,&b);输入1234567,a=12,b=67;345被跳过

(3).输入时不能指定精度

(4).输入数据时要与格式控制保持一致,格式控制中用”,”分开,输入时也要用”,”分开,格式控制中用”:”分开,输入时也要用”:”分开, 否则结果不可预料.如果格式控制中没有用任何字符隔开,你也不要用任何字符隔开,包括空格,比如:scanf(“%c%c”,&a,&b);如果输入a b (中间有空格),此时a=’a’,b=’’,而b却存入缓存中.另外格式控制后是变量地址,普通变量不要忘了取地址运算符”&”.本来代表地址的也不要多加”&”.比如指针(数组名也是指针)不用加”&”.

(5).清除缓存.当缓存中有数据时,使用scanf时,不会提示输入字符,而是直接将缓存中的数据(包括回车符)赋给变量,直到缓存中没有变量.这样就要在调用scanf之前清除缓存,用语句fflush(stdin);来清除缓存.另外用scanf(“ %c”,&a);在格式控制中多加一个空格可以清除一个字符,当有多个字符时就不有完全清除,还可以用 * 来清除缓存,和空格作用差不多,比如:scanf(“%*5c%c”,&a);可以清除缓存中五个字符.最好是直接用fflush (stdin);

%f表示的是输入的数为符点数,共输入三个数,输入时三个数间以逗号隔开^_^
希望能解决您的问题。