C语言—scanf_s()

作者:追风剑情 发布于:2019-7-20 21:36 分类:C

示例

//Visual Studio中加上这句才可以使用scanf()
//否则只能使用scanf_s()
#define _CRT_SECURE_NO_WARNINGS

//引入printf()、scanf_s()
#include <stdio.h>
#include <stdint.h>
//引入bool类型,C99标准新增
#include <stdbool.h>
//引入Sleep()
#include <windows.h>
//ANSI C之前的编译器不支持string.h
//一些ANSI之前的UNIX系统用strings.h代替string.h
//引入strlen()
#include <string.h>

int main(void)
{
	char name[40];
	printf("please enter name:\n");
	//第三个参数代表最多读取多少个字符到name中
	//scanf_s是微软提供的,比scanf更安全
	//当读到第一个空格时即结束
	scanf_s("%s", name, 40);
	//sizeof()返回数组长度
	//strlen()返回数组中有效字符数
	printf("sizeof=%d, len=%d \n", sizeof(name), strlen(name));
	
	fflush(stdin);//刷新输入缓冲区
	fflush(stdout);//刷新输出缓冲区

	int age=0;
	printf("please enter age:\n");
	scanf_s("%d", &age);
	printf("name=%s, age=%d\n", name, age);

	int num1, num2, num3;
	scanf_s("%d %d %d", &num1, &num2, &num3);
	printf("num1=%d, num2=%d, num3=%d \n", num1, num2, num3);

	char str1[40];
	char str2[40];
	//连续读取字符串,字符数组后面必须指明要读取的个数
	//输入多个字符串时用空格隔开.例如 abc def
	//多个%s可以连续写,也可以用空格隔开
	scanf_s("%s %s", str1, 40, str2, 40);
	printf("str1=%s, str2=%s\n", str1, str2);

	int num4;
	char str3[40];
	scanf_s("%s %d", str3, 40, &num4);
	printf("str3=%s, num4=%d\n", str3, num4);

	system("pause");
	return 0;
}


运行测试
1111.png

标签: C语言

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号