C ++在自定义目录中创建文件

时间:2014-02-16 22:41:08

标签: c++ createfile create-directory

我想创建名为" Control.h"的文件。在Desktop /(用户指定的文件夹)中,并向其写入文本。我该怎么做呢? (对于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 个答案:

答案 0 :(得分:0)

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);