我想创建名为" 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);
答案 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);