2016-03-31 5 views
-3

Ich stieß auf eine Idee, wo ich protokollieren wollte, was mein Programm mit Datum und Uhrzeit macht. So schrieb ich eine kleine Funktion, und nach der Kompilierung kein Fehler, und kein Laufzeitfehler, außer dass es nicht geöffnet log.txt und es wird nicht einmal das Datum angezeigt.Ich konnte das Datum nicht in Datei schreiben

#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

Ich würde 'std :: fstream :: in' und' std :: fstream :: app' nicht zur gleichen Zeit verwenden. – Logicrat

+0

Macht es Ihnen etwas aus, über Ihren Grund zu erfahren? –

+0

@KiloKing Behebung des primären Fehlers in Bezug auf die Zeigerreferenz [funktioniert problemlos] (http://coliru.stacked-crooked.com/a/c702c4117bc0943d). –

Antwort

1

Diese Zeile:

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

definiert eine lokale Variable log vom Typ namens const char * mit dem Wert "Testin codenz stuff" .. es ist kein Funktionsaufruf. Tun Sie das einfach:

log("Testin codenz stuff"); 
+0

Danke, obwohl technisch die Zeile 'log (" Testin codesz stuff ");' ist nicht Korrekt, muss ein 'const char *' - Argument übergeben werden. –

+1

Entfernen Sie das '&' in der Funktionssignatur. – eduffy

Verwandte Themen