scanf的用法

        说来惭愧,我学编程一年多了,但都没怎么认真学,记得去年教我们C语言课的老师是上了十五节课,每节课差不多俩小时,还有过几次上机课,可惜我课上虽然听的还算是比较认真,但课下却没怎么看书,最终结课时感觉自己学到的实在是不多,而且老师讲的吧,怎么说呢,不能说一点儿也不明白,但感觉老师讲的不是特别清楚,而且因为没有及时复习,所以后来又几乎全忘了,关于scanf的用法,我原本也只知道它是个输入函数,其他的就不太了解了,现在看了郝斌老师的C语言视频讲的scanf的用法,唉!他讲了不少我以前不知道的知识,现在我写出来,算是对自己的一个提醒吧!


scanf()【通过键盘将数据输入到变量中】

它有两种用法:

用法一: scanf“输入控制符”,输入参数);

功能:  将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。

例如:

# include <stdio.h>
 
int main(void)
{
    int i;
    scanf("%d",&i);//如果输入123
    printf("i=%d\n",i);//输出结果为i=123
    return 0;
}

用法二: scanf(“非输入控制符 输入控制符”,输入参数);

功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中(非输入控制符必须原样输入)。

例如:

# include <stdio.h>
 
int main(void)
{
    int i;
    scanf("m%d",&i);//输入m123正确,输入123错误
    printf("i=%d\n",i);//输入m123,输出结果为i=123
    return 0;
}

另外,需要注意的是,使用scanf之前最好再使用printf进行操作说明(即提示用户以什么样的方式进行输入)

例如:

# include <stdio.h>
 
int main(void)
{
    int i,j;
 
    printf("请输入两个数,中间用空格或回车隔开:");
    scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车
    //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号(逗号是一个非输入控制符,非输入控制符必须原样输出)
    printf("i=%d j=%d\n", i, j);
 
    return 0;
}
 

还有,scanf中尽量不要使用非输入控制符,尤其不要使用 \n

例如:

# include <stdio.h>
 
int main(void)
{
    int i,j;
 
    //使用scanf之前最好先使用printf进行一个操作说明,另外scanf中尽量不要使用非输入控制符,尤其不要用\n
    printf("请输入两个值,中间用空格或回车隔开:");
    //scanf("%d %d\n",&i,&j);//在scanf中不要使用\n,这样不好
    scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车
    //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号              逗号是一个非输入控制符,非输入控制符必须原样输出

    printf("i=%d j=%d\n", i, j);
 
    return 0;
}

最后,为了防止当程序中有多个输入时,用户在前边的输入有误导致影响到下面的输入,我们可以在输入的后边添加一个

while ( (ch=getchar()) != '\n')

continue;   

例如:

# include <stdio.h>
 
int main(void)
{
    int i;
    char ch;//添加字符数据
 
    scanf("%d",&i);
    printf("i = %d\n",i);
 
    while ( (ch=getchar()) != '\n')//把用户前边的非法输入消除!!!
    continue;                      //重点!
    int j;
    scanf("%d",&j);
    printf("j=%d",j);
 
    return 0;
}

好了以上就是scanf的基本用法 ,第一次写博客感觉有些吃力,相信以后会好一些

 【所有代码均在window系统下VC6.0下运行通过】

(如有错误,敬请指正)

  • 44
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值