Bri*_*ian 2 c++ linux windows cygwin visual-studio-2008
我试图在Windows上编译这个简单的例子.当我使用时%F,这是较长形式的快捷方式%Y-%m-%d,进程中止而没有错误消息.在Linux上,它运行正常,就像在ideone.com上显示的这个实例.有任何想法吗?
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"Now it's %F.",timeinfo);
puts (buffer);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
%F是C99,请参阅man7上的strftime或自己比较C99和C90标准.
strftime在VS2013库和早期版本不符合C99,因为他们不接受格式说明符:MSDN VS2013 strftime页面
也许下一个版本会添加它,因为格式不用于其他任何东西......
只需使用它直接的快捷方式,即C89和VS2013符合: %Y-%m-%d
引用strftime从C标准传递的无效格式说明符会发生什么:
6如果转换说明符不是上述之一,则行为未定义.
| 归档时间: |
|
| 查看次数: |
3008 次 |
| 最近记录: |