我希望用户做的是在testquote中键入文件名,然后为我的程序添加.txt到最后将文件保存为.txt,这样我就可以保存多个引号没有过度写作的电脑。这就是我到目前为止所做的:
cout << "What would you like to save the quotation as? (Maybe using your last name) " << endl;
cin >> nameOfFile;
ofstream outfile; // Opens file in write mode
outfile.open(nameOfFile)<<(".txt"); // Opens the quotations file
//Lawn
outfile << "The total lawn area is " << lawnArea << " square meters" << endl; // Writes users data into the file
outfile << "The total cost for the lawn is £" << (lawnArea * lawnCost) << endl; // Writes users data into the file
答案 0 :(得分:5)
假设nameOfFile
是std::string
,您可以使用std::string::operator+
将其与".txt"
连接起来:
ofstream outfile(nameOfFile + ".txt");
(注意:没有必要调用open
- 只需将文件名传递给构造函数)
答案 1 :(得分:0)
outfile.open(nameOfFile)<<(".txt"); // Opens the quotations file
这行代码完全错误。您似乎对operator<<
与std::ofstream
类的结合使用感到困惑。
你想要的是一个std::string
变量,它包含要打开的文件的名称。添加.txt
扩展程序应该自动完成,对吧?
首先要有一个变量来接收用户文件名选择(没有.txt
):
std::string nameOfFile;
// ...
cin >> nameOfFile;
然后追加.txt
:
nameOfFile += ".txt";
然后用这个字符串构造一个std::ofstream
:
std::ofstream outfile(nameOfFile.c_str());