0

我正在研究这个答案。我遇到了一个难题:scanf有一个任务抑制'*'

如果存在此选项,则该函数不会将转换结果分配给任何接收参数

但是在 Visual Studio、libc++ 和 libstdc++ 上使用时会出现运行时错误:get_time所以我认为它不受支持。'*'str >> get_time(&tmbuf, "%T.%*Y")

因此,我选择通过阅读tmbuf.tm_year两次来忽略输入:

str >> get_time(&tmbuf, "%H:%M:%S.%Y UTC %b %d %Y");

可行,而且似乎是我唯一的选择,get_time因为'*'不被接受。但众所周知,仅仅因为它有效并不意味着它已被定义。有人可以确认:

  1. 它被定义为两次分配相同的变量get_time
  2. 流将始终从左到右读取,因此第一次发生的%Y将被踩踏,而不是第二次
4

1 回答 1

1
于 2016-06-16T14:57:08.317 回答