2011-06-30 70 views
0
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创建一个文件(.txt文件)具有相同的名称作为user的名称。我的意思是用户在cin >> name;期间输入的名称。创建具有相同名称的文件作为输入

我该怎么做?

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

+2

'char * name; cin >> name;' - 你认为你知道这是做什么的吗? – Donotalo

回答

4

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

说,如果该字符串是path

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

干杯&心连心,

0

您可以创建fopen一个文本文件,荷兰国际集团的文件或ofstream

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

0

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

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

+1

-1:你没有回答这个问题 – saplingPro

相关问题