当前位置:网站首页>[C语言] sscanf如何实现sscanf_s?

[C语言] sscanf如何实现sscanf_s?

2022-08-11 07:39:00 jianqiang.xue

在MCU中并不支持sscanf_s,所以我们只能通过sscanf实现。

	char user[33] = {
    0};
	char pass[33] = {
    0};

	sscanf_s(buf, "%s %s", user, pass);
	// 用 sscanf实现
	sscanf(buf, "%32[^ ] %32[^ ]", user, pass);

在这里插入图片描述

C 库函数 int sscanf(const char *str, const char *format, …) 从字符串读取格式化输入。

声明
下面是 sscanf() 函数的声明。

int sscanf(const char *str, const char format, …)
参数
str – 这是 C 字符串,是函数检索数据的源。
format – 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
format 说明符形式为 [=%[
][width][modifiers]type=],具体讲解如下:
参数 描述

  • 这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中。
    width 这指定了在当前读取操作中读取的最大字符数。
    modifiers 为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g)
    type 一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。
原网站

版权声明
本文为[jianqiang.xue]所创,转载请带上原文链接,感谢
https://lisun.blog.csdn.net/article/details/126243023