- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
您好,我这里有一个非常简单的测试用例,可以在 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
):
不幸的是,它看起来不像是 Microsoft 的高优先级错误。
关于c++ - std::put_time() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440700/
据我了解,重载运算符会被编译器翻译成方法调用,例如: stream #include #include int main() { std::ostream s {std::cout.rdb
下面的代码将打印带有时区偏移量的时间,传递小写格式说明符z: #include #include #include using namespace std; int main() { t
put_time 提供 2 个转换说明符用于输出月中的日期: %d : "一个月中的第几天,用零填充 (01-31)" %e : "一个月中的第几天,用空格填充 (1-31)" 请注意,这些转换说明符
我的程序解析一个表示日期格式为 YYYYMMDD 的字符串,并以 dayOfWeek、Month Day、Year 的形式打印它。例如,给定字符串 20131224,程序应打印 Sunday, Dec
您好,我这里有一个非常简单的测试用例,可以在 visual studio 2012 下编译。但是它会产生运行时故障。产生此故障的行被完全复制,就像他们在 cppreference.com 上的许多与时
我有一个函数作为 transTime() { time_t const now_c = time(NULL); cout > myTime; return myTime; } 当我调用
我想了解 std::put_time 的工作原理,以及如何获取“YYYY/MM/DD HH:MM:SS”格式的日期戳。现在我写这样的东西: std::chrono::time_point now =
我正在使用以下代码来获取 C++ 中的当前时间。 std::time_t t = std::time(nullptr); std::time(&t); std::cout 特征。如果您可以使用 C++
我正在使用 Microsoft Visual Studio 2012,并且正在考虑使用 std::put_time,因此我创建了以下示例: int main() { std::time_t t
我试图编译 this example program使用 GCC(测试版本 4.5.1、4.6.3、4.8.4): #include #include #include #include us
编辑:初始化tmb.tm_isdst为0 我在解析带有“AM” /“PM”字段的日期时遇到问题。通常,无论我使用哪种转换说明符组合,它似乎都会忽略此字段。有时似乎是随机解析时间。 我解析的示例日期是
初始点 让我们假设 Windows 上的第三方组件使用以下函数创建一个表示日期的字符串: std::string getDate() { std::tm t = {}; std::ti
我在新编译器上遇到了一个老问题。在尝试使用 std::chrono 打印当前时间时,我收到以下错误: src/main.cpp:51:30: error: ‘put_time’ is not a me
我正在学习使用 C++11 chrono,并尝试输出时间。 Other SO questions显示一些代码示例,例如 std::chrono::time_point now = std::chron
我暂时停留在 GCC4.8 上。我想将当前时间打印为秒以外的时间。如果 put_time工作,我的代码会很简单,像这样: std::cout ,但这不起作用,因为它没有任何东西可以自动格式化时间。我
下面这个小例子给出了我不理解的结果。 #include #include #include #include int main() { auto currentTime = std::
我是一名优秀的程序员,十分优秀!