# Standard lib Arduino\_STD\_PRINTF enabled or disabled?

**URL:** <https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744>\
**Category:** SDK\
**Tags:** rtl872xd\
**Created:** [January 21, 2025, 7:44pm UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744 "2025-01-21T19:44:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe](https://avatars.discourse-cdn.com/v4/letter/j/b9e5f3/32.png) [@Joe](https://forum.amebaiot.com/u/Joe)\
**Post date:** [January 21, 2025, 7:44pm UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744/1 "2025-01-21T19:44:54Z")

</div>

```auto
void setup() {
  Serial.begin(115200);

  int val = 0, n = sscanf("123", "%d", &val);
  Serial.println(val);

  String str = String((float) 123);
  Serial.println(str);
}

```

With standard lib Arduino\_STD\_PRINTF disabled it prints:

```auto
123
_rtl_sprintf: format not support!
.2f

```

No float-to-string conversion possible.

With standard lib Arduino\_STD\_PRINTF enabled it prints:

```auto
0
123.00

```

Now sscanf fails.  
Is there any setup to get both working?

---

<div class="post-metadata">

**Author:** ![KaiFai\_Y](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/kaifai_y/32/2252_2.png) [@KaiFai\_Y](https://forum.amebaiot.com/u/KaiFai_Y)\
**Post date:** [January 22, 2025, 2:33am UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744/2 "2025-01-22T02:33:25Z")

</div>

Hi @Joe, since sscanf is undef when Arduino\_STD\_PRINTF enabled, and this method parses the string “123” into an integer val, which will then prints the integer value of val. You may just try to print integer straight using:  
int val = 123;  
Serial.println(val);

Here are another example using atoi to convert string to integer:

const char \*input = “123”;  
int val = atoi(input); // Avoid sscanf, directly parse integers  
Serial.println(val);

Thank you.

---

<div class="post-metadata">

**Author:** ![Joe](https://avatars.discourse-cdn.com/v4/letter/j/b9e5f3/32.png) [@Joe](https://forum.amebaiot.com/u/Joe)\
**Post date:** [January 22, 2025, 4:26am UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744/4 "2025-01-22T04:26:05Z")

</div>

> [@KaiFai\_Y](#):
>
> Hi @Joe, since sscanf is undef when Arduino\_STD\_PRINTF enabled, and this method parses the string “123” into an integer val, which will then prints the integer value of val. You may just try to print integer straight using:  
> int val = 123;  
> Serial.println(val);
> 
> Here are another example using atoi to convert string to integer:
> 
> const char \*input = “123”;  
> int val = atoi(input); // Avoid sscanf, directly parse integers  
> Serial.println(val);
> 
> Thank you.

Thanks for your answer. However, the code above was only a silly example for demonstration. My real code is of course more challenging:  
`sscanf(arg, "%d %d %d %d %d %c %f %f", &prog, &lfo, &type, &minVal, &maxVal, &mode, &step, &len);`  
How would you implement this?  
Thanks in advance.

---

<div class="post-metadata">

**Author:** ![KaiFai\_Y](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/kaifai_y/32/2252_2.png) [@KaiFai\_Y](https://forum.amebaiot.com/u/KaiFai_Y)\
**Post date:** [January 22, 2025, 10:18am UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744/5 "2025-01-22T10:18:04Z")

</div>

Hi @Joe, after reviewing there was a bug on the std lib for sscanf. We will be fixing it. Thank you for your review.

---

<div class="post-metadata">

**Author:** ![KaiFai\_Y](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/kaifai_y/32/2252_2.png) [@KaiFai\_Y](https://forum.amebaiot.com/u/KaiFai_Y)\
**Post date:** [February 10, 2025, 1:12am UTC](https://forum.amebaiot.com/t/standard-lib-arduino-std-printf-enabled-or-disabled/3744/6 "2025-02-10T01:12:07Z")

</div>

Hi @Joe , the bug on the std lib for sscanf was fixed, you may update to the latest early release for 3.1.8-build20250206 and enable Arduino\_STD\_PRINTF to test on the sscanf. Thank you.
