草庐IT

tm_start

全部标签

c++ - SBRM/RAII 用于 std::va_list/va_start()/va_end 使用

我的代码包含如下片段:std::va_listap;va_start(ap,msgfmt);snprintf_bufbuf;consttchar*msg=buf.print_va_list(msgfmt,ap);va_end(ap);它们很短,va_start()和va_end()靠得很近,所以它们不是什么大问题。两者之间的调用异常可能是一个问题(或不是?)。简单测试表明,不允许从没有省略号的函数中调用va_start()。从与va_start()不同的函数调用va_end()是否允许?基本上,我很好奇是否可以对这些调用使用SBRM/RAII习惯用法,即使必须手动调用va_start(

c++ - 为什么 mktime() 会更改我的 tm 结构的年份?

我读了两个字符串,分别是年份、儒略日(年日)、小时、分钟和观测值。我使用sscanf提取相关变量:sscanf(tide_str1.c_str(),"%d%d%d%d%Lf",&y1,&j1,&h1,&m1,&obs1);sscanf(tide_str2.c_str(),"%d%d%d%d%Lf",&y2,&j2,&h2,&m2,&obs2);对于这个特定的数据集,值为201108323221.1然后我创建并填充一个tm结构,并运行mktime,在这期间调用cout,它从083变为364。inty1=2011,j1=83,h1=23,m1=22;structtmtime_struct=

c++ - "QObject::startTimer: timers cannot be started from another thread"没有计时器 && CPU 消耗

我在Qt(4.7.2)中创建了一个多线程应用程序。只有主线程有事件循环。问题是有时我在控制台中收到以下警告:QObject::startTimer:timerscannotbestartedfromanotherthread发生这种情况后,应用程序会消耗100%的CPU(我有一个单核CPU)。看起来,主线程消耗了所有的CPU资源。该程序不会卡住,一切仍然有效。当我在调试器中停止程序时,我没有在调用堆栈中看到我的代码。问题是我根本没有使用(明确地,无论如何)计时器。它可以连接什么?我知道,这个问题很常见,但我什至不明白要显示哪一段代码。 最佳答案

c++ - 将 struct tm 转换为 time_t

我有以下代码:structtmtime;strptime("27052010","%d%m%Y",&time);cout输出是:sec:1474116832min:32767hour:4238231day:27month:5year:110sec:52min:0hour:6day:2month:9year:640time:18008625652(Fri,02Sep254004:00:52GMT)我的问题是为什么mktime()改变了time的值,为什么转换后的time_t不等于我输入的日期。我希望输出是自1970年以来以秒数表示的日期(27.05.2010=1330905600)。提前

C++ 11 正则表达式 : checking if string starts with regex

我正在使用C++11的支持,并想检查字符串的开头是否与正则表达式匹配。[如果有帮助,我可以切换到Boost,但我的印象是它们基本相同。]显然,如果我可以控制表达式的实际文本表示,我可以只粘贴^在它的开头作为anchor。但是,如果我只有一个regex怎么办?(或basic_regex)对象?我可以修改它代表的正则表达式来添加anchor吗?或者我必须使用regex_search,得到结果,检查是否从位置0开始? 最佳答案 您可以在使用regex_search时添加std::regex_constants::match_continu

c++ - 当给定一个有效的 struct tm 时,mktime 返回 -1

#include#includeintmain(intargc,char*argv[]){structtmstm;stm.tm_sec=27;stm.tm_min=5;stm.tm_hour=18;stm.tm_mday=2;stm.tm_mon=0;stm.tm_year=43;stm.tm_wday=0;stm.tm_yday=0;printf("%d\n",mktime(&stm));getchar();return0;}打印-1我误会了什么?[+edit]这是使用具有32位目标的VisualStudio2012。我想后续问题是“存储任意日期/时间值(即可能在1900年之前的值)

c++ - C++ 终止处理程序何时才是正确的事情 (TM)?

C++标准提供了std::set_terminate函数,它允许您指定std::terminate应该实际调用的函数。std::terminate应该只在可怕的情况下被调用,并且当它被调用时标准描述的情况确实是可怕的(例如未捕获的异常)。当std::terminate确实被调用时,情况似乎与内存不足类似——实际上您可以明智地做的事情并不多。我读到它可以用来确保资源被释放——但是对于大多数资源来说,这应该在进程退出时由操作系统自动处理(例如文件句柄)。从理论上讲,我可以看到一个案例,如果说,您需要在因崩溃而退出时向服务器发送特定消息。但大多数时候操作系统处理应该足够了。什么时候使用终止处

c - WinSDK 7.1 : Getting Started with the Windows SDK Tools for Native Windows app development?

我终于能够在我的WindowsVista系统上成功安装WindowsSDK工具(v.7.1)。我已经安装了GCC编译器,这就是我目前用来编译C代码的工具。我在哪里可以找到WinSDK的文档以及我应该如何将其包含在GCC中?我在发行说明或任何内容中找不到任何解释。但是,如果您能找到解释它的内容,请随时给我一个链接。 最佳答案 这对您来说可能听起来很奇怪,但您不需要下载任何单独的WindowsSDK来为Windows开发,因为VisualStudio、MingW/GCC和其他软件通常已经包含了大多数人需要的所有内容。(有些人会说,Vis

windows - 为什么 "start firefox"命令在 Windows 命令提示符下有效?

我很好奇为什么像“startiexplore”和“startfirefox”这样的命令在Windowscmd中有效。它们不是独立的命令。如果您尝试只输入“firefox”,您将得到:“'firefox'未被识别为内部或外部命令,可运行的程序或批处理文件。”由此得出的结论是,这是“start”命令的一种特殊行为。我的第一个猜测是它的工作方式与%path%变量的使用方式类似,具有已知的搜索目录。我通过尝试为与firefox位于同一目录中的另一个可执行文件运行“start[executable]”轻松排除了它。我的结论是,我的计算机上某处有一个指定文件路径列表,只需在“开始”命令后键入文件名

windows - 如何在通过 Windows START 命令执行命令时重定向命令的输出

我不知道如何重定向使用WindowsSTART命令运行的可执行文件的输出。当我使用以下内容时:startprog.exepar1par2par3>output.file当我希望prog.exe的输出转到output.file时,只有START命令的输出进入output.file。prog.exe将输出写入其标准输出。 最佳答案 您需要转义重定向字符,以便将其传递给内部命令。试试这个:startprog.exepar1par2par3^>output.file 关于windows-如何在通