2016-03-31 50 views
-3

我遇到了一個想法,我想用日期和時間記錄我的程序正在做什麼。所以我編寫了一個小函數,在編譯時沒有錯誤,沒有運行時錯誤,除非它不打開log.txt,它甚至不會顯示日期。無法將日期寫入文件

#include <chrono> 
#include <ctime> 
#include <fstream> 
#pragma warning(disable:4996) 

void log(const char*& text) 
{ 
    std::fstream fs; 
    fs.open("log.txt", std::fstream::in | std::fstream::out | std::fstream::app); 

    auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); 

    fs << ctime(&now) << text << std::endl; 
} 

int main() 
{ 
    const char* log("Testin codenz stuff"); 
} 
+0

我不會在同一時間使用'std :: fstream :: in'和'std :: fstream :: app'。 – Logicrat

+0

你介意說明你的理由嗎? –

+0

@KiloKing修復關於指針參考的主要錯誤[它工作得很好](http://coliru.stacked-crooked.com/a/c702c4117bc0943d)。 –

回答

1

這條線:

const char* log("Testin codenz stuff"); 

被定義一個名爲值爲「試驗在codenz東西」型const char *log局部變量..它不是一個函數調用。只要這樣做:

log("Testin codenz stuff"); 
+0

謝謝,雖然技術上'log(「Testin codenz stuff」);''不是正確的,需要傳入'const char *'參數。 –

+1

擺脫函數簽名中的'&'。 – eduffy