fscanf/scanf/sscanf转换规范是否禁止赋值而不是转换?
应该sscanf("x", "%*c%c", &(char){0})返回什么?
Apple 和Godbolt使用的库返回 ?1,这是他们的EOF. 但是,C 2018 7.21.6.7 3 告诉我们sscanf返回“EOF如果在第一次转换(如果有)完成之前发生输入失败。” %*c是一个禁止赋值的转换规范。它完成,然后在%c完成之前发生输入失败(字符串结束)。然后sscanf应该返回“分配的输入项数”,它为零。
标准中是否有任何文字会告诉我们%*c将被视为不是转换?