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个回答

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

infoworld
infoworld 回复qq_43412960: 我发的这些网址里: https://zh.cppreference.com/w/c 右上角的搜索能搜到的函数就是标准库函数
6 个月之前 回复
infoworld
infoworld 回复qq_43412960: 你可以下载一些中文版的chm或pdf格式的C标准库.
6 个月之前 回复
infoworld
infoworld 回复qq_43412960: C++标准库: https://zh.cppreference.com/w/cpp
6 个月之前 回复
infoworld
infoworld 回复qq_43412960: C标准库: https://zh.cppreference.com/w/c
6 个月之前 回复
infoworld
infoworld 回复qq_43412960: https://zh.cppreference.com/w/
6 个月之前 回复
infoworld
infoworld 回复qq_43412960: 这里能搜到的就是标准库函数. https://zh.cppreference.com/w/E9%A6%96%E9%A1%B5
6 个月之前 回复
qq_43412960
qq_43412960 我只清楚现在用的是函数,我都分不清标准库还是其他库。。。
6 个月之前 回复
qq_43412960
qq_43412960 感觉出来了 这个VS不好使 函数复杂
6 个月之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问