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;问题
答案 0 :(得分:4)
使用std::string
代替char*
。因为它是您的代码具有未定义的行为。使用std::getline
代替>>
。使用>>
仅输入第一个以空格分隔的“单词”。然后,在std::string
中撰写完整路径。标准字符串类支持连接,所以这应该很容易。
说,如果该字符串是path
,
std::ofstream f( path.c_str() );
干杯&amp;第h。,
答案 1 :(得分:0)
您可以fopen
文件或ofstream
创建文本文件。
但是你对name
的输入方式似乎是错误的。您没有为name
分配空间。尝试使用malloc
或new
答案 2 :(得分:0)
char*
指向一个字符。由于它没有初始化,它指向涅 - - &gt; undefined bahavior 。
您可以尝试使用char name[MAX_LENGTH_FOR_YOUR_NAME]
。最好在这里使用std::string name
。