C语言,为什么VS2019输入字符串时会发生异常?

图片说明

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
    char demo[30];
    char ha[30];
    scanf_s("%s",demo);
    printf("%s",demo );
    return 0;
}

后面要加上长度

scanf_s("%s", demo, 30);

可以把
`scanf_s
改成scanf然后试一下

或者直接把scanf这一行替换成cin>>demo

这样应该可以

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
    char demo[30];
    char ha[30];
    cin>> demo;
    cout<<demo;
    return 0;
}

换成cin/cout就可以了

也可能是你输入了超过29个字符,30个字符的字符数组最多放29个字符的字符串,因为末尾要有结束符'\0'