如何在sscanf中传递可变长度宽度的说明符?

如何在sscanf中传递可变长度宽度的说明符?,第1张

概述sscanf(input_str, "%5s", buf); //reads at max 5 characters from input_str to buf 但是我需要使用%MACRO_SIZE而不是%5s 一个简单的解决方案是创建一个相同的格式字符串 char fmt_str[100] = ""; snprintf(fmt_str, 100, "%%%ds", MACRO_SIZE)
sscanf(input_str,"%5s",buf); //reads at max 5 characters from input_str to buf

但是我需要使用%MACRO_SIZE而不是%5s

一个简单的解决方案是创建一个相同的格式字符串

char fmt_str[100] = "";    snprintf(fmt_str,100,"%%%ds",MACRO_SIZE);sscanf(input_str,fmt_str,buf);

有没有更好的方法来实现呢?

解决方法 如果你的MACRO_SIZE在编译时是const,你可以试试这个:
#define MACRO_SIZE "5"snprintf(fmt_str,"%" MACRO_SIZE "s",buf);
总结

以上是内存溢出为你收集整理的如何在sscanf中传递可变长度宽度说明符?全部内容,希望文章能够帮你解决如何在sscanf中传递可变长度宽度的说明符?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1253680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存