scanf()函数相关

本文探讨了在使用C语言编写学生管理系统时遇到的scanf函数返回值问题。通过返回值可以判断输入的数据类型是否正确,例如,当输入一个整数时,scanf正确读取会返回1,错误则返回0。对于输入多个整数的情况,返回值为成功读取的个数。当%d未完全赋值时,返回值仍为%d的个数,但多余输入会被丢弃。了解这些可以帮助我们更好地控制用户输入并避免潜在的程序错误。
摘要由CSDN通过智能技术生成

        2020-7-27用C语言完成学生管理系统的增删改查时遇到scanf的问题,

        在以往的学习过程中并没有注意到scanf函数还有返回值,通过返回值来判断输入的数据类型是否正确,在通过返回值来限制用户的输入。

输入为整数时:

        当只输入一个值时

#include <stdio.h>
int main()
{
    int i,d;
    i = scanf("%d",&d);
//当前输入正确时res为1
//输入错误时res为0.
    printf("res = %d",i);
    return 0;
}

                格式正确返回1,错误返回0.

        输入n个值时

                全部正确返回n,错误m个、返回n-m,也就是正确的个数,

        一般情况遇不到,因为大多数编译器会警告,可能运行时还会崩溃,值得注意的时当scanf中的%d,没有全部赋值时返回的依旧是%d的个数,因为在输入时已经输入到缓冲区了,只是在赋值的时候,多余的被丢弃

#include <stdio.h>
int main()
{
    int i,a,b;
    i = scanf("%d%d%d",&a,&b);
//返回值res为3.
    printf("res = %d",i);
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值