coder12345678 2022-04-13 11:53 采纳率: 100%
浏览 52
已结题

scanf()函数为什么会用不了?

问题遇到的现象和发生背景

使用Visual Studio 2022,scanf()函数用不了

问题相关代码
#include <iostream>
#include<stdio.h>
using namespace std;

#define maxSize 100

typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode;

int main()
{
    void createlistF(LNode * &, int [], int );
    void printlist(LNode *);
    LNode* C;
    int a[maxSize],n;
    
    cout << "Please enter the number of elements:" << endl;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    createlistF(C, a, n);
    printlist(C);

    return 0;
}

void createlistF(LNode * &C, int a[], int n)
{
    LNode* s;

    C = (LNode*)malloc(sizeof(LNode));        //C is the head node of the linked list, it does't store datum
    C->next = NULL;
    for (int i = 0; i<n; i++)
    {
        s = (LNode*)malloc(sizeof(LNode));
        s->next = C->next;
        C->next = s;
        s->data = a[i];
    }

    return;
}

void printlist(LNode* C)
{
    C = C->next;
    while (C)
    {
        printf("%d", C->data);
        if (C->next)
        {
            printf(" -> ");
        }
    }

    return;
}

运行结果及报错内容

编译错误,第25行:Severity Code Description Project File Line Suppression State
Error 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. data_structure D:\programs\visual_studio_projects\data_structure\header_insertion_for_singlelinked_list.cpp 25

我的解答思路和尝试过的方法

1)换成其他IDE, 我换的是Dev-C++,在Dev-C++上编译没有问题
2)按照报错内容的提示,把scanf改成scanf_s就没有问题了

我想要达到的结果

请问为什么在Visual Studio上无法使用scanf函数,为什么改成scanf_s以后又可以使用了?

  • 写回答

3条回答 默认 最新

  • 非西昂 2022-04-13 12:13
    关注

    在高版本上使用memcpy,strcpy以及scanf等方法,会被编译器认为不安全,都要求在后面加上_s。需要传递的参数也增加了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败