【发布时间】:2015-10-06 19:14:25
【问题描述】:
我用来写入 .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)'
我不明白是什么原因造成的。
【问题讨论】:
-
指定“无效”。没有编译?如果是这样,请发布错误。没链接?如果是这样,请发布错误。表现不如预期?如果是这样,请发布预期和观察到的行为。
-
你是对的,我很抱歉。我对其进行了编辑,还包含了整个代码。
-
完整的错误信息是什么?
-
这是在 Linux 上,你是用 gcc 而不是 g++ 编译的吗?
-
@melpomene 我是菜鸟导致了这种情况。我正在使用 codeblocks 平台,因为它对初学者友好。我选择构建,然后构建并运行。之后我收到此错误,是的,这是完整的消息。