Как вы пишете несколько строк в файл? … Это то, что у меня есть. Кроме того, некоторые строки содержат текст, например: #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);
Поскольку это 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';
Если вы дадите нам больше информации о вашей проблеме, я смогу подробнее уточнить мой ответ. Но пока вы этого не сделаете, вышесказанного достаточно.
Изменить на
sprintf (file , "%s/Desktop/%s/Control.h\n",homeDir, game_name);
\ n — это код новой строки.
В C ++ вы бы сделали это так:
ofstream fout("someplace/Control.h");
fout << "a line of text" << endl;
fout << "another line of text" << endl;
Я пропустил некоторые детали, например, как создать имя файла и как открыть файл в режиме «добавления», но вы должны попытаться решить одну проблему за раз.