簡體   English   中英

%F不返回任何輸出

[英]%F returns no output

我正在編寫代碼來自動為我們的Web服務器寫入標記,我在使用<ctime>頭文件中的strftime()嘗試在文本文件中實現自動日期插入時遇到了麻煩。 這是相關的代碼:

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();

第一個引用的塊以兩種不同的格式將今天的日期插入到兩個已經初始化的char緩沖區中,然后將它們存儲到字符串中,第二部分將所有內容寫入文件。 date格式為YYYY-MM-DD(%F), longdate格式為月DD,YYYY(%B%d,%Y)。 問題是當使用%F(使用debug確定)時,strftime無法向char緩沖區寫入任何內容。 如果我將%F更改為同義語法“%Y-%m-%d”,則返回年份和月份,但日期是兩個符號,這些符號由g ++輸出。 令人困惑的是, longdate完美的作品,所以它不是有問題timeinfo 有任何想法嗎?

您應該閱讀strftime標准定義 特別是%F的兼容性部分是:

在C99中引入(僅在C ++ 11之后的C ++實現中需要),並且可能不受符合舊標准的庫的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM