Quiero crear un archivo usando C++, pero no tengo ni idea de cómo hacerlo. Por ejemplo, quiero crear un archivo de texto llamado Hello.txt
.Crear archivos en C++
¿Alguien me puede ayudar?
Quiero crear un archivo usando C++, pero no tengo ni idea de cómo hacerlo. Por ejemplo, quiero crear un archivo de texto llamado Hello.txt
.Crear archivos en C++
¿Alguien me puede ayudar?
Una forma de hacerlo es crear una instancia de la clase ofstream y usarla para escribir en su archivo. Aquí hay un enlace a un sitio web que tiene un código de ejemplo, y algo más de información acerca de las herramientas estándar disponibles con la mayoría de las implementaciones de C++:
Para completar, aquí está un código de ejemplo:
// using ofstream constructors.
#include <iostream>
#include <fstream>
std::ofstream outfile ("test.txt");
outfile << "my text here!" << std::endl;
outfile.close();
Desea usar std :: endl para finalizar sus líneas. Una alternativa es usar el caracter '\ n'. Estas dos cosas son diferentes, std :: endl vacía el búfer y escribe su salida de inmediato mientras '\ n' le permite al archivo de salida poner toda su salida en un búfer y quizás escribirlo más tarde.
#include <iostream>
#include <fstream>
int main() {
std::ofstream o("Hello.txt");
o << "Hello, World\n" << std::endl;
return 0;
}
\ n en la cadena es redundante cuando se usa std :: endl. –
El retorno 0; en la función es redundante cuando se utiliza "int main()" –
Es cierto, pero me gusta vaciar explícitamente el búfer de salida. –
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string filename = "/tmp/filename.txt";
int main() {
std::ofstream o(filename.c_str());
o << "Hello, World\n" << std::endl;
return 0;
}
Esto es lo que tenía que ver con el fin de utilizar una variable para el nombre del archivo en lugar de una cadena normal.
Haga esto con una secuencia de archivos. Cuando se cierra un std::ofstream
, se crea el archivo. Personalmente, me gusta este estilo:
#include <fstream>
int main()
{
std::ofstream{ "foo.txt" };
// foo.txt has been created here
}
La variable temporal se destruye inmediatamente después de su creación, por lo que la corriente está cerrado y por lo tanto se crea el archivo.
Sin mencionar que std :: endl también escribe la cadena de caracteres de nueva línea específica de la plataforma correcta. –
Para Limberg: eso está mal. "endl: Efectos: llama a os.put (os.widen ('\ n')), luego a os.flush()" - C++ estándar, 27.6.2.7/1 –
@Grant Limberg: '\ n' también escribe el corregir la nueva línea específica de la plataforma - se traduce como apropiado por ostream internals. –