【发布时间】:2021-03-07 08:13:29
【问题描述】:
我有一个关于 scanf 函数在格式字符串中遇到非空白字符时所执行的过程的问题。根据我正在阅读的书:
当
scanf函数在格式字符串中遇到非空白字符时,scanf会将其与下一个输入字符进行比较。如果两个字符匹配,scanf丢弃输入字符并继续处理格式字符串。如果字符不匹配,scanf会将有问题的字符放回输入中,然后中止而不进一步处理格式字符串或从输入中读取字符。
我有点困惑。它表示scanf 将其与下一个输入字符进行比较,如果两个字符匹配,scanf 将丢弃输入字符。为什么我们说它与“下一个”输入字符比较?
这是否意味着如果我们有一个格式字符串
scanf("%d/%d", &x, &y) 和输入 2/4、scanf 与四个比较,因为它是来自 / 的下一个输入字符?
【问题讨论】:
-
不,
%d读取2,下一个输入字符是/,并与格式字符串中的/进行比较。然后%d变为4。