Añadir una nueva línea en un archivo (archivo de registro) en c++
Tengo una funcionalidad de registro y en esto tengo archivos de registro. Ahora cada vez que corro el programa que quiero que el archivo escrito anteriormente no debe ser eliminado y debe ser anexado con los datos actuales (lo que nunca hay en el archivo de registro)
Solo para dejarlo claro, por ejemplo: Tengo un archivo de registro logging_20120409.registro que mantiene la marca de tiempo sobre una base diaria. Supongamos que corro mi proyecto que escribe en él la marca de tiempo actual. Ahora si lo vuelvo a ejecutar la marca de tiempo anterior se sustituye consigo. No quiero esta funcionalidad. Quiero la marca de tiempo anterior junto con la marca de tiempo actual.
Por favor ayuda
3 answers
Desea abrir el archivo en modo "anexar", para que no elimine el contenido anterior del archivo. Lo hace especificando ios_base::app
cuando abre el archivo:
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
Por ejemplo, cada vez que ejecute esto, agregará una línea más al archivo:
#include <ios>
#include <fstream>
int main(){
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
log << "line\n";
return 0;
}
Así que, la primera vez que lo ejecutes, obtienes
line
La segunda vez:
line
line
Y así sucesivamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-09 09:22:37
Usa algo como:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream out("try.txt", ios::app);
out << "Hello, world!\n";
return 0;
}
La opción ios:app hace que la salida se anexe al final del archivo en lugar de eliminar su contenido.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-09 09:13:31
Tal vez necesite abrir el archivo con la opción anexar. así:
FILE * pFile;
pFile = fopen ("myfile.txt","a");
O esto:
fstream filestr;
filestr.open ("test.txt", fstream::app)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-09 09:17:09