在用户定义的.txt文件中写入

时间:2015-10-06 19:14:26

标签: c++ gcc windows-7

我用来写入.txt文件的基本语法是:

ofstream myfile;
myfile.open ("data.txt", ios::trunc);
outfile<<"writing";

现在,假设我要让用户决定应该访问哪个文件,是否可以通过字符串完成?

#include <iostream>
#include <fstream>
using namespace std;
int main (){
    ofstream myfile;
    string filename;
    char x;
    cin>>x;
    if (x==1)
        filename="data2.txt";
    myfile.open (filename, ios::trunc);
    myfile<<"writing";
    return 0;
}

我已经测试了这个并且它没有用。我的问题是:是否可以做这样的事情?如果有,怎么样?当我编译它时,我得到的错误如下:

undefined reference to 'std::basicofstream<char, std::char_traits<char> >::open(std::string const&, std::_Ios_Openmode)'

我无法理解导致它的原因。

2 个答案:

答案 0 :(得分:2)

您的错误表明无法找到使用open的{​​{1}}方法。

试试这个:

std::string

某些版本的C ++不允许使用myfile.open(filename.c_str(), ios::trunc); std::string方法,因此您必须使用open的{​​{1}}方法。

答案 1 :(得分:1)

您应该添加else分支,因为如果x不等于1 open则无法打开。

您也忘了在第二段中声明ofstream myfile;。也许这就是它不起作用的原因(它甚至不应该编译)。