writetofile — C ++ записать текст в файл, как в несколько строк

Как вы пишете несколько строк в файл? … Это то, что у меня есть. Кроме того, некоторые строки содержат текст, например: #import <Foundation/Foundation.h> Как бы я поступил так? Код ниже это то, что у меня есть сейчас ..

//Creates Config.h
FILE * pFile;
char *buffer = "//Empty Header File";
char file [256];
sprintf (file , "%s/Desktop/%s/Control.h",homeDir, game_name);
pFile = fopen (file, "w+");
fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
fclose (pFile);

0

Решение

Поскольку это C ++, я предлагаю вам использовать стандартную библиотеку IOStreams и использовать конкретные классы файлового потока std::ifstream а также std::ofstream для обработки файлов. Они реализуют RAII обрабатывать закрытие файла и использовать встроенные операторы и read()/write() функции-члены для выполнения форматированного и неформатированного ввода-вывода соответственно. Кроме того, они хорошо сочетаются друг с другом с использованием std::basic_string, стандартный строковый класс C ++.

С учетом вышесказанного, если мы правильно реализуем это в C ++, это должно выглядеть так:

std::string path     = "/Desktop/";
std::string filename = homeDir + path + game_name + "/Control.h";

std::ofstream file(filename, std::ios_base::app);

Это позволяет открыть файл, но, как вы говорите, вы хотите записать в файл несколько строк. Ну, это просто. Просто используйте '\n' всякий раз, когда вы хотите поставить новую строку:

file << buffer << '\n';

Если вы дадите нам больше информации о вашей проблеме, я смогу подробнее уточнить мой ответ. Но пока вы этого не сделаете, вышесказанного достаточно.

1

Другие решения

Изменить на

sprintf (file , "%s/Desktop/%s/Control.h\n",homeDir, game_name);

\ n — это код новой строки.

0

В C ++ вы бы сделали это так:

ofstream fout("someplace/Control.h");
fout << "a line of text" << endl;
fout << "another line of text" << endl;

Я пропустил некоторые детали, например, как создать имя файла и как открыть файл в режиме «добавления», но вы должны попытаться решить одну проблему за раз.

0
По вопросам рекламы [email protected]