写入文件名不确定的文件

时间:2014-03-25 10:40:13

标签: c++ file input output ofstream

我已经给出了一个赋值,我需要从名为“filename.s”的文件中获取一些输入,我的代码应该将输出写入名为“filename.m”的文件。这是我的代码,但当我尝试以outfile.open(out);

打开文件时,我正在编译问题
int main(int argc, char *argv[]){
  readFile(argv);
  int x=0;
  compile(x);
  mystring += "halt";
  cout << mystring<< endl;
  string out = argv[1];
  out.resize(out.size()-1);
  out += "m";
  ofstream outfile;
  outfile.open(out);
  outfile << mystring;
  outfile.close();
  return 0;
}

任何人都知道可能是什么问题?因为当我给出这样的论点时它会编译:{{1​​}}感谢您的回复。

3 个答案:

答案 0 :(得分:1)

我猜你使用的是没有C ++ 11的旧编译器,所以行

outfile.open(out);

无法编译,因为ni C ++ 98 open只接受字符指针而没有std :: strings。将行更改为

outfile.open(out.c_str());

它应该编译

答案 1 :(得分:0)

试试这个:

outfile.open(out.c_str());

在C ++ 98中,open()的参数为const char *

答案 2 :(得分:0)

更简单的解决方案,但具体针对这种情况:

size_t pos = strlen(argv[1]) - 1;
argv[1][pos] = 'm';

std::ofstream out(argv[1]); // Easier to just create the stream already opened.