Я хочу создать файл с использованием C++, но я понятия не имею, как это сделать. Например, я хочу создать текстовый файл с именем Hello.txt
.Создание файлов в C++
Может ли кто-нибудь мне помочь?
Я хочу создать файл с использованием C++, но я понятия не имею, как это сделать. Например, я хочу создать текстовый файл с именем Hello.txt
.Создание файлов в C++
Может ли кто-нибудь мне помочь?
Один из способов сделать это - создать экземпляр класса thestream и использовать его для записи в файл. Вот ссылка на сайт, который имеет некоторый пример кода, и еще некоторая информация о стандартных инструментов, доступных в большинстве реализаций C++:
Для полноты, вот пример кода:
// using ofstream constructors.
#include <iostream>
#include <fstream>
std::ofstream outfile ("test.txt");
outfile << "my text here!" << std::endl;
outfile.close();
Вы хотите использовать std :: endl, чтобы закончить ваши строки. Альтернативой является использование символа «\ n». Эти две вещи разные, std :: endl сбрасывает буфер и записывает ваш вывод немедленно, в то время как «\ n» позволяет аутфику помещать весь ваш вывод в буфер и, возможно, писать его позже.
#include <iostream>
#include <fstream>
int main() {
std::ofstream o("Hello.txt");
o << "Hello, World\n" << std::endl;
return 0;
}
\ n в строке избыточно при использовании std :: endl. –
Возврат 0; в функции избыточно при использовании «int main()» –
Правда, но мне нравится явно очищать выходной буфер. –
#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;
}
Это то, что я должен был сделать для того, чтобы использовать переменную для имени файла вместо обычной строки.
Сделайте это с файловым потоком. Когда std::ofstream
закрыт, файл создается. Лично мне нравится этот стиль:
#include <fstream>
int main()
{
std::ofstream{ "foo.txt" };
// foo.txt has been created here
}
Временная переменная уничтожается сразу после его создания, таким образом, поток закрывается, и, таким образом, создается файл.
Не говоря уже о том, что std :: endl также записывает правильную характерную строку символов новой строки. –
Лимбергу: Это неправильно. "endl: Эффекты: Вызывает os.put (os.widen ('\ n')), затем os.flush()" - стандарт C++, 27.6.2.7/1 –
@Grant Limberg: '\ n' также записывает правильная конкретная новая строка линии - она переводится соответствующим образом внутренними подразделениями. –