gpt4 book ai didi

c++ - %F 不返回任何输出

转载 作者:行者123 更新时间:2023-11-30 02:45:04 26 4
gpt4 key购买 nike

我正在编写代码以在工作中为我们的 Web 服务器自动编写标记,但我在尝试使用 strftime() 在文本文件中实现自动日期插入时遇到了麻烦。来自 <ctime> header 。这是相关代码:

if (yen(raw_input))
{
time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime(buf, 10, "%F", timeinfo);
strftime(cuf, 60, "%B %d, %Y", timeinfo);
date = buf;
longdate = cuf;
}
...
ofstream mark;
const string filename = name + date + ".txt";
mark.open(filename);
mark << "{s5_mp3}http://www.####DELETED####.org/media/s5_mp3/" << date << "_" << name_cf << "_Sermon.mp3" << "{\s5_mp3}\n";
mark << hon << " " << name << ": ";
if (is_series) {mark << series << ": ";}
mark << title << "\n";
mark << verse << "\n" << longdate << "\n\0";
mark.close();

第一个引用 block 将今天的日期以两种不同的格式插入到两个已经初始化的字符缓冲区中,然后将它们存储为字符串,第二部分将所有内容写入文件。 date格式为 YYYY-MM-DD(%F),并且 longdate格式为 Month DD, YYYY(%B %d, %Y)。问题是 strftime 在使用 %F 时无法将任何内容写入 char 缓冲区(使用调试确定)。如果我将 %F 更改为同义语法“%Y-%m-%d”,它会返回正确的年份和月份,但日期是两个被 g++ 框出的符号。令人困惑的部分是 longdate工作完美,所以这不是 timeinfo 的问题.有什么想法吗?

最佳答案

您应该阅读 standard definition for strftime .特别是说 %F 的兼容性部分是:

introduced in C99 (only required for C++ implementations since C++11), and may not be supported by libraries that comply with older standards.

关于c++ - %F 不返回任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24827746/

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