c语言之scanf的几条常见用法
基本格式:scanf(“输入控制符”, 输入参数);
1.当scanf控制符是字符”%c“的时候,要注意回车,回车也是一个字符,当我们连续输入两个整数,回车/空格都属于字符,都会被下一轮的scanf(“%c”,&运算符)吸收。导致我们无法再次输入一个运算符。使用getchar();可以解决这一问题。
2.逗号后不要忘记取地址符&。
3.scanf输入函数须要原样按照“”双引号中的内容输入,例如scanf(“%d,%d”,&a,&b);当在键盘输入时,输入第一个整数时要原样输入逗号“,”后,否则输出结果会发生改变。
4.输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。//c语言中scanf("%d%*c", &n);的意思。scanf()中%表示忽略掉一个输入项。上面的程序执行时,比如输入 1 2,m获得的值就是2。
\n和c起的作用:\n在scanf()中会被忽略掉,%c表示忽略掉一个字符型的输入项。最佳答案格式字符串的一般形式为:%[][输入数据宽度][长度]类型其中有方括号[]的项为任选项“”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
如:scanf("%d %*d %d",&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。%*c作用时读取输入流中数字后的一个字符,并丢弃,使得后面的输入函数不能读到那个字符跳过一个字符
举个例子
include 〈stdio.h〉
int main()
{
int a, b;
scanf("%d%*c%d", &a, &b);
printf("%d %d\n", a, b);
return 0;
}你输入1n2,那么scanf把1读取赋给变量a,如果跳过一个char(这里是 ‘n’)接着读取2赋给变量b
include <stdio.h>
int main(void)
{
int i;
scanf(“m%d”,&i);
/*
&i表示i的地址,&是取地址符号
*/
printf(“i = %d\n”,i);
return 0;
} //输入m123则输出123
scanf(“非输入控制符 输入控制符”,输入参数);功能:将从键盘输入的字符转化为输入控制符所规定的数据,然后存入以输入参数的值为地址的变量中重点:非输入控制符必须原样输出
如何使用scanf编写出高质量的代码
1.使用scanf之前最好先使用printf提示用户以什么样的方式来输入
2.scanf中尽量不要使用非输出控制符
3.应该对非法输入做适当处理【非重点】 while ( (ch=getchar() ) != ‘\n’ ) continue;