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

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");
}

运行后这个样子
图片说明

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

求解

哥们,你不需要先使用带_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

scanf_s("%s", bArray, 512);