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