S-Black 发表于 2021-3-11 22:50:36

返回值被忽略scanf,怎么破

#include <stdio.h>
int main()
{
        int age;
        float score;
        printf("请输入你的年龄和成绩:");
        scanf("%d %f", &age, &score);
        if (age >= 18)
        {
                if (score >= 60)
                {
                        printf("你满足条件\n");
                }
                else
                {
                        printf("抱歉,你的成绩不及格\n");
                }
        }
        else
        {
                printf("抱歉,你还为成年\n");
        }
        return 0;
}

S-Black 发表于 2021-3-11 22:51:22

红色字部分提示说返回值被忽略:“scanf”

jackz007 发表于 2021-3-11 23:07:38

本帖最后由 jackz007 于 2021-3-11 23:09 编辑

      程序没有问题,只不过提示 scanf() 是一个返回整型数的函数,但是,在代码中没有用变量来接收这个值。属于警告信息,不影响程序的正常编译和正常运行,可以直接忽略。

S-Black 发表于 2021-3-11 23:13:11

jackz007 发表于 2021-3-11 23:07
程序没有问题,只不过提示 scanf() 是一个返回整型数的函数,但是,在代码中没有用变量来接收这个 ...

但是下面有一段错误,也是同一个地方
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        IF ELSE        D:\CX\IF ELSE\if else.c        7       

S-Black 发表于 2021-3-11 23:14:03

jackz007 发表于 2021-3-11 23:07
程序没有问题,只不过提示 scanf() 是一个返回整型数的函数,但是,在代码中没有用变量来接收这个 ...

并且无法生成调试文件

S-Black 发表于 2021-3-11 23:27:37

已经找到解决办法,https://blog.csdn.net/weixin_42417585/article/details/104859754
发不了图片,直接上链接

昨非 发表于 2021-3-11 23:29:51

S-Black 发表于 2021-3-11 23:14
并且无法生成调试文件

在所有代码的第一行加上
#define _CRT_SECURE_NO_WARNINGS   

S-Black 发表于 2021-3-11 23:50:32

昨非 发表于 2021-3-11 23:29
在所有代码的第一行加上

我百度查到的是添加#pragma warning(disable:4996)
并且有效,但是这是什么意思呀。你那一句又是什么意思呢

S-Black 发表于 2021-3-11 23:51:18

已经找到解决办法
https://blog.csdn.net/weixin_42417585/article/details/104859754
不能放图片,直接上链接了

昨非 发表于 2021-3-11 23:53:24

S-Black 发表于 2021-3-11 23:50
我百度查到的是添加#pragma warning(disable:4996)
并且有效,但是这是什么意思呀。你那一句又是什么意 ...

编译预处理,就是取消一些警告(warning)
(警告这东西和报错不同,不会影响程序的正常执行的)
深层次的机理我也说不清楚,不过新手也没必要搞得太明白

S-Black 发表于 2021-3-11 23:54:32

昨非 发表于 2021-3-11 23:53
编译预处理,就是取消一些警告(warning)
(警告这东西和报错不同,不会影响程序的正常执行的)
深层 ...

嗯嗯,好的,谢啦
页: [1]
查看完整版本: 返回值被忽略scanf,怎么破