gpt4 book ai didi

c++ - std::put_time() 的问题

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:01 49 4
gpt4 key购买 nike

您好,我这里有一个非常简单的测试用例,可以在 visual studio 2012 下编译。但是它会产生运行时故障。产生此故障的行被完全复制,就像他们在 cppreference.com 上的许多与时间功能相关的示例中一样。带有示例的页面就像这样http://en.cppreference.com/w/cpp/chrono/c/localtime

#include <fstream>
#include <iomanip>
#include <time.h>
#include <stdio.h>
#include <chrono>
#include <string>

using namespace std;

ofstream & GetTimeStr(ofstream & ofs)
{
time_t rawTime = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());

// fails on this line, very deep inside the runtime code.
ofs << std::put_time(std::localtime(&rawTime), "%c %Z");
return ofs;
}

int main()
{
std::ofstream ofs;
ofs.open("Logger.txt");

if (ofs.good())
{
ofs << "some text " << GetTimeStr(ofs) << " more text ";
}
}

为了保持这篇文章的简洁,我把堆栈跟踪放在这里 http://ideone.com/WaeQcf

最佳答案

我猜这是 VC 运行时中的一个错误,它是由 strftime 中使用 %Z 触发的(由 std 调用)::put_time):

http://connect.microsoft.com/VisualStudio/feedback/details/759720/vs2012-strftime-crash-with-z-formatting-code

不幸的是,它看起来不像是 Microsoft 的高优先级错误。

关于c++ - std::put_time() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440700/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com