我正在学习 C 语言,并试图了解 scanf 的工作原理。我无法理解一些术语:“输入项”、“初始子序列”、“匹配序列”等术语。 我正在阅读此https://pubs.opengroup.org/onlinepubs/9699919799/functions/scanf.html。它说:
输入项应定义为输入字节的最长序列(最多可达任何指定的最大字段宽度,可以根据转换说明符以字符或字节为单位来衡量),它是匹配序列的初始子序列。
假设格式为 i ,标准输入为4.5,其中%d表示初始子序列,匹配序列又是什么?输入项又是什么?
我认为输入项与该说明符相对应,即对于%d ,相应的符号是数字(可能是开头的 + - 符号),但随后它说:
除 % 转换说明符的情况外,输入项(或在 %n 转换说明的情况下,输入字节数)应转换为适合转换字符的类型。如果输入项不是匹配的序列,则转换说明的执行失败;
即输入项可能不对应,这意味着它不只由与说明符相对应的符号组成。
那么,您能给我解释一下这些术语吗?告诉我我是否在这里寻找 C 函数的文档?哪些网站是阅读 C 函数文档的最佳地点?