栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

5 C语言-scanf基本用法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5 C语言-scanf基本用法

scanf():通过键盘将数据输入到变量中,初级使用中一般有以下几种用法及常见错误:

用法一:scanf("输入控制符",输入参数);
功能:将从键盘输入的字符(字符!字符!字符!)转化为输入控制符所规定格式的数据,然后存入“输入参数”的内存空间中(取地址符的意义)

#include

int main()
{
    int i;
    scanf("%d",&i);
    printf("i=%dn",i);
    
    return 0;
}

用法二:scanf("非输入控制符 输入控制符",输入参数);
功能:将从键盘输入的字符(字符!字符!字符!)转化为输入控制符所规定格式的数据,然后存入“输入参数”的内存空间中(取地址符的意义),但在输入控制符前加了非输入控制符
【注意】键盘输入时,非输入控制符必须原样输入


#include

int main()
{
    int i;
    scanf("m%d",&i);
    printf("i=%dn",i);
    
    return 0;
}

用法三:一次给多个变量键盘赋值
#include

int main()
{
    int i,j;
    scanf("%d %d",&i,&j);
    printf("i=%d,j=%dn",i,j);
    
    return 0;
}

面对用户不知如何正确输入多个值时,以上代码可进行以下改进,及用printf加一行输入样式提示信息
#include

int main()
{
    int i,j;
    printf("请输入两个数中间以空格隔开:n");  //提示行
    scanf("%d %d",&i,&j);
    printf("i=%d,j=%dn",i,j);
    
    return 0;
}

用法四:非法输入与用while屏蔽非法输入
//在输入多个变量值时,输入i时会误碰键盘导致非法输入,如以下代码,字符12输入后,其后面的字符均为非法输入,若不进行处理,会将非法输入赋值给变量j
#include

int main()
{
    int i;
    int j;

    scanf("%d",&i);
    printf("i=%dn",i);    

    scanf("%d",&j);
    printf("j=%dn",j);
    
    return 0;
}

将以上代码改进如下,在代码中间加入一段while循环语句,可解决i的误输入问题
#include

int main()
{
    int i;
    char ch;
    int j;

    scanf("%d",&i);
    printf("i=%dn",i);    

    while((ch=getchar())!='n')    //屏蔽i输入时因误碰键盘导致的非法输入
         continue;

    scanf("%d",&j);
    printf("j=%dn",j);
    
    return 0;
}
*vs2010测试结果
--------------------------------------------------------
12sfsdgsgdsgsdfgsdfaf34
i=12
34
j=34
--------------------------------------------------------
*/

【小结】如何使用scanf编写出高质量代码
1.使用scanf之前最好先使用printf提示用户以何种形式输入
2.scanf中尽量不要使用非输入控制符,尤其是'n'

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号