将txt文件另存为变量名称

时间:2013-12-19 20:14:42

标签: c++

我希望用户做的是在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 

2 个答案:

答案 0 :(得分:5)

假设nameOfFilestd::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());