Ich möchte eine Datei mit C++ erstellen, habe aber keine Ahnung, wie das geht. Zum Beispiel möchte ich eine Textdatei mit dem Namen Hello.txt
Erstellen.
Kann mir jemand helfen?
Eine Möglichkeit, dies zu tun, besteht darin, eine Instanz der ofstream-Klasse zu erstellen und diese zum Schreiben in Ihre Datei zu verwenden. Hier ist ein Link zu einer Website mit Beispielcode und weiteren Informationen zu den Standardtools, die für die meisten Implementierungen von C++ verfügbar sind:
Der Vollständigkeit halber hier ein Beispielcode:
// using ofstream constructors.
#include <iostream>
#include <fstream>
std::ofstream outfile ("test.txt");
outfile << "my text here!" << std::endl;
outfile.close();
Sie möchten std :: endl verwenden, um Ihre Zeilen zu beenden. Eine Alternative ist die Verwendung des Zeichens '\ n'. Diese beiden Dinge sind unterschiedlich, std :: endl leert den Puffer und schreibt Ihre Ausgabe sofort, während '\ n' es der Outdatei ermöglicht, Ihre gesamte Ausgabe in einen Puffer zu legen und sie möglicherweise später zu schreiben.
Tun Sie dies mit einem Dateistream. Wenn ein std::ofstream
wird geschlossen, die Datei wird erstellt. Ich persönlich mag den folgenden Code, weil das OP nur fragt, eine Datei zu erstellen, nicht darin zu schreiben:
#include <fstream>
int main()
{
std::ofstream file { "Hello.txt" };
// Hello.txt has been created here
}
Die temporäre Variable file
wird direkt nach ihrer Erstellung zerstört, sodass der Stream geschlossen und somit die Datei erstellt wird.
#include <iostream>
#include <fstream>
int main() {
std::ofstream o("Hello.txt");
o << "Hello, World\n" << std::endl;
return 0;
}
Hier ist meine Lösung:
#include <fstream>
int main()
{
std::ofstream ("Hello.txt");
return 0;
}
Datei (Hello.txt) wird auch ohne Ofstream-Namen erstellt, und dies ist der Unterschied zu Mr. Boiethios Antwort.
#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;
}
Dies ist, was ich tun musste, um eine Variable für den Dateinamen anstelle einer regulären Zeichenfolge zu verwenden.