Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文件名中时间戳中的秒值有时会舍入_C++_Timestamp_Filenames - Fatal编程技术网

C++ 文件名中时间戳中的秒值有时会舍入

C++ 文件名中时间戳中的秒值有时会舍入,c++,timestamp,filenames,C++,Timestamp,Filenames,对于一个任务,为了唯一性,我必须创建文件名中附有时间戳的文件。还有另一个程序可以读取这些文件。另一个程序拾取这些文件的条件是,文件名应该包含14位时间戳(YYYYMMDDHHMMSS),这是我通过SYSTEMTIME获得的。我面临的问题是,有时秒字段在文件名中显示为“10”,而在时间戳中只有“1”显示为秒字段。另一个程序没有选择这个文件,因为时间戳现在只包含13位数字。除了检查时间戳的长度并在最后添加“0”之外,我如何通过任何方法解决此问题 谢谢 Mahboob附加一些示例代码更适合描述 我使用

对于一个任务,为了唯一性,我必须创建文件名中附有时间戳的文件。还有另一个程序可以读取这些文件。另一个程序拾取这些文件的条件是,文件名应该包含14位时间戳(YYYYMMDDHHMMSS),这是我通过SYSTEMTIME获得的。我面临的问题是,有时秒字段在文件名中显示为“10”,而在时间戳中只有“1”显示为秒字段。另一个程序没有选择这个文件,因为时间戳现在只包含13位数字。除了检查时间戳的长度并在最后添加“0”之外,我如何通过任何方法解决此问题

谢谢
Mahboob

附加一些示例代码更适合描述

我使用的代码如下,并没有遇到你们面临的问题

  int64 timestamp = time(NULL);
  char data[kFileNameLength + 1]; 
  tm time_struct;
  strftime(data, sizeof(data), "%Y%m%d%H%M%S", localtime_r(&timestamp, &time_struct));
  return std::string(data);

您是如何生成时间戳的?确保在系统将其计算为某个值之前将其转换为字符串,并舍入最后的0。我正在尝试使用命令SYSTEMTIME timer将毫秒添加到时间戳中;字毫秒=计时器.wmill秒;它返回3位数字。但是如果最后一个数字是0,它将其四舍五入并返回2个数字。我使用的是标准的C内置函数。你试过了?是的。我试过了。也许我不能完全清楚地表达我的问题。实际上,当我把我的问题和我先前的评论结合起来时,我的问题就出现了。我正在使用具有类似参数的strftime()函数,但当我使用WORD并添加毫秒时,我会遇到这个问题。这个链接有助于我理解我需要做什么。[链接]()