测试用scanf_s储存char字符串时出现了问题,源代码如下
#include <stdio.h>
#include<stdlib.h>
int main(void) {
printf("HH\n");
char putin[20];
scanf_s("%s", putin);
printf("\n%s", putin);
}
怎么搞都会报错,很蛋疼,后来加了一行用了scanf函数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
int main(void) {
printf("HH\n");
char putin[20];
scanf("%s", putin);
printf("\n%s", putin);
}
问题就解决了==,一直以为两个函数是一样的,于是上网找了下两个函数的区别,发现了一个惊人的事情,以下是官方的描述:
于是
#include <stdio.h>
int main(void) {
printf("HH\n");
char putin[20];
scanf_s("%s", putin,sizeof(putin));
printf("\n%s", putin);
}
这样就没问题了
给后来者避雷。