创建与输入同名的文件

时间:2011-06-30 05:01:16

标签: c++ visual-c++ io

cout << "Enter your full name";
char* name ;

cin >> name;
  if( _mkdir("c:\\names") == 0 ) {
     cout << "directory successfully created";
  }  else {
       cout << "there was a problem creating a directory";
     }

现在,我想在目录names中创建一个文件(a .txt文件),其名称与user的名称相同。我的意思是用户在cin >> name;期间输入的名称。

我该怎么做?

ofstream writeName( "c:/names/????); ----&gt;问题

3 个答案:

答案 0 :(得分:4)

使用std::string代替char*。因为它是您的代码具有未定义的行为。使用std::getline代替>>。使用>>仅输入第一个以空格分隔的“单词”。然后,在std::string中撰写完整路径。标准字符串类支持连接,所以这应该很容易。

说,如果该字符串是path

std::ofstream f( path.c_str() );

干杯&amp;第h。,

答案 1 :(得分:0)

您可以fopen文件或ofstream创建文本文件。

但是你对name的输入方式似乎是错误的。您没有为name分配空间。尝试使用mallocnew

答案 2 :(得分:0)

char*指向一个字符。由于它没有初始化,它指向涅 - - &gt; undefined bahavior

您可以尝试使用char name[MAX_LENGTH_FOR_YOUR_NAME]。最好在这里使用std::string name