C++ Создать файл в пользовательском каталоге
Я хочу создать файл с именем "Control.h" на рабочем столе /(указанная папка пользователем) и записать в него текст. Как мне это сделать? (для mac)........ Это то, что я имею до сих пор:
#include <iostream>
#include <fstream>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main ()
{
char game_name [100];
cout << "Game Name: ";
cin >> game_name;
const char* homeDir = getenv ("HOME");
char final [256];
sprintf (final, "%s/Desktop/%s",homeDir, game_name);
mkdir(final,0775);
1 ответ
std::ofstream out(std::string(final)+"/Control.h");
// ...
out << mytext; // write to stream
// ...
out.close();
Почему вы используете const char*
строки с, cin
, хоть? Либо использовать cin::getline
или использовать std::string
чтобы избежать переполнения буфера. Кроме того, использование sprintf также опасно. Лучшее решение:
#include <string>
// ...
{
std::string game_name [100];
cout << "Game Name: ";
cin >> game_name;
std::string homeDir = getenv ("HOME");
std::string final=homeDir+"/Desktop/"+game_name;
mkdir(final.c_str(),0775);