如何通过在c ++ linux中的变量中传递其名称来打开文件

时间:2016-09-16 15:43:58

标签: c++ linux fstream ifstream ofstream

#include<iostream>
#include<conio.h>
#include<fstream>
#include<string>
#include<string.h>
#include<vector>
using namespace std;

void main()
{
    string read;
    string name;
    vector<string> myvec;
    const char * word;
    ifstream in;
    in.open("w.txt");
    ofstream out;

        getline(in,read);
        word = strtok(&read[0],",");

        while(word != NULL)
        {
            name = word;
            cout<<"Word: "<<word<<endl;
            name = name + ".txt";
            myvec.push_back(name);
            out.open(name);
            cout<<"Name: "<<name<<endl;
            word = strtok(NULL,",");
            out.close();
        }
    in.close();
    system("pause");
}

我遇到的问题是当我在ubuntu终端中运行它时会抛出一个错误,通常会说out.open()不会接受字符串名称。

我必须创建从文件中获取输入的不同文件。那么有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在C ++ 03中,ofstream::open()需要const char*,而不是std::string;见http://www.cplusplus.com/reference/fstream/ofstream/open/。如果您可以使用C ++ 11(gcc -std=c++11),则可以传递std::string