qq_43412960 2019-09-22 20:58 采纳率: 78.6%
浏览 233
已采纳

C语言输入语句报错,参数0000000003

这是我敲的代码

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
 int main(){
int a = 2;
string c;
string b = "s";
printf("%d\n",a);

printf("%s\n",b.c_str());

char bArray[512] = { 0};
scanf_s("%s", bArray);
printf("bArray is %s\n",bArray);
system("pause");
}

运行后这个样子
图片说明

输入一个数,回车后,这个样子
图片说明

求解

  • 写回答

2条回答

  • Peter(阿斯拉达) 博客专家认证 2019-09-22 22:15
    关注

    哥们,你不需要先使用带_s的函数的,先使用C标准库的函数。使用新函数一定要在bing.cn搜索这个函数的用法。
    你这次是scanf_s用错了, 要3个参数,你才用了两个。因为scanf_s的第二个参数开始是可变参数,所以2,3个参数都会编译过.
    scanf_s的第3个参数是数组的大小,所以我这里用sizeof求char数组大小. 建议刚学C语言的时候不要使用微软的安全函数, 熟悉了可以用.

    #include "stdafx.h"
    #include <stdio.h>
    #include <string>
    
    using namespace std;
    
    // https://docs.microsoft.com/zh-cn/cpp/c-runtime-library/reference/scanf-s-scanf-s-l-wscanf-s-wscanf-s-l?view=vs-2019
    void main()
    {
        int a = 2;
        string b = "s";
        printf("%d\n", a);
        printf("%s\n", b.c_str());
    
        char bArray[512] = {0};
        scanf_s("%s", bArray,sizeof(bArray));
        printf("bArray is %s\n", bArray);
        system("pause");
    }
    

    参考:
    scanf_s

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

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置