到目前为止,我已经让我的程序顺利地从用户那里获取文件位置和文件名。当我尝试ofstream
使用用户提供的文件位置创建对象时,问题就出现了。我基本上使用append()
字符串库中的函数来使文件的位置成为c:\users\user\my documents\"file"
我工作的标准格式。我已经在没有ofstream
对象的情况下测试了代码,一切似乎都很好。所以我只是不确定为什么ofstream对象不会引用字符串变量指定的文件位置-filelocation。
目前程序应该只是在某个地方创建一个带有 Hello 的文件,但是这并没有发生,并且代码拒绝编译。我计划在更远的地方获得用户输入,但这是我在继续之前需要克服的一个小障碍。
#include <fstream>
#include <string>
#include <iostream>
using namespace std ;
int main()
{
string text = "Hello" ;
string title ;
string usertitle ;
string filelocation = "C:/Users/" ;
string user ;
cout << "Input a title for your file: " ;
cin >> title ;
title.insert(title.length() , ".txt" ) ;
cout << "Your title is: " << title << endl ;
cout << endl << "Input the username associated with your computer (Caps Sensitive): " ;
cin >> user ;
filelocation.append( user ) ;
filelocation.append("/My Documents/") ;
filelocation.append(title) ;
filelocation.insert(0, "\"") ;
filelocation.insert(filelocation.length() , "\"" ) ;
cout << "Your chosen file name and location is: " << filelocation << endl ;
ofstream writer( filelocation.c_str() ) ;
if (! writer )
{
cout << "Error opening file for output" << endl ;
return -1 ; //Signal an error then exit the program
}
else
{
writer << text << endl ;
writer.close() ;
}
return 0 ;
}
提前感谢您提供的任何帮助!