尝试在文本文件名中插入int不起作用

时间:2018-07-17 20:45:15

标签: ofstream

#include <iostream>
#include <fstream>
using namespace std;

string name;
int n = 1;
// Account Number
int main()
{
    cout << "What is your full name? : ";
    cin >> name;

    ofstream myfile;

    filec:
    //Go to file creation
    myfile.open ("account" << n << ".txt");
    myfile << "Account Holder: " << name << endl;
    myfile.close();
}

如所见,我尝试在每次唯一失败时在结尾处创建具有不同编号的文件,但我在myfile.open行上始终遇到错误

1 个答案:

答案 0 :(得分:0)

当ofstream使用open时,它期望一个String(或更具体地说是char *)作为其输入。您必须将n转换为字符串。此外,您需要附加字符串的不同部分,而不要使用重载的运算符<<,因为它的任何操作都不能为您提供单个字符串的预期结果。如果您使用的是c ++ 11,则std库中包含to_string,您可以简单地使用以下内容:

#include <iostream>
#include <fstream>
using namespace std;

string name;
int n = 1;
// Account Number
int main()
{
    cout << "What is your full name? : ";
    cin >> name;

    ofstream myfile;

    filec:
    //Go to file creation
    myfile.open("account" + to_string(n) + ".txt");
    myfile << "Account Holder: " << name << endl;
    myfile.close();
}