scanf相关

来源:互联网 发布:手机画线软件 编辑:程序博客网 时间:2024/06/11 00:03

  "%d%d%d"是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。

  以下是合法输入方式:

  ① 3□□4□□□□5↙

  ② 3↙

  4□5↙

  ③ 3(tab键)4↙

  5↙

  例2.#include "stdio.h"

  int main(void)

  {

  int a,b,c;scanf("%d,%d,%d",&a,&b,&c);

  printf("%d,%d,%d/n",a,b,c);return 0;

  } 运行时按如下方式输入三个值:3,4,5 ↙(输入a,b,c的值)或者3,□4,□5 ↙(输入a,b,c的值)3,□□□4,□5 ↙(输入a,b,c的值)

  ......

  都是合法的,但是","一定要跟在数字后面,如:

  3□,4,□5 ↙就非法了,程序出错。(解决方法与原因后面讲)再如:1、sacnf()中的变量必须使用地址。 int a, b;

  scanf("%d%d",a,b); //错误

  scanf("%d%d",&a,&b);2、scanf()的格式控制串可以使用其它非空白字符,但在输入时必须输入这些字符。例:

  scanf("%d,%d",&a,&b);

  输入: 3,4 ↙(逗号与"%d,%d"中的逗号对应)

  scanf("a=%d,b=%d",&a,&b);

  输入: a=3,b=4 ↙("a=","b=",逗号与"%d,%d"中的"a=","b="及逗号对应)

  3、在用"%c"输入时,空格和“转义字符”均作为有效字符。例:

  scanf("%c%c%c",&c1,&c2,&c3);

  输入:a□b□c↙

  结果:a→c1,□→c2,b→c3 (其余被丢弃)

  scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。

  ① 遇空格、“回车”、“跳格”键。

  ② 遇宽度结束。

  ③ 遇非法输入