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 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多