输入\输出文件中的编译错误

时间:2011-01-16 18:15:25

标签: c++ c opencv

这是我的代码:

#include <iostream>
#include <fstream>

void WriteInDB()
{
    ofstream myfile;
    myfile.open ("result.txt");
    for(int i=0;i<512;i++)
    {
        if(strcmp(filelist[i],"")!=0)
            myfile << filelist[i]<<"\n";
    }
    myfile.close();
}

编译此程序时,出现以下错误:

  

错误14错误C2228:'。open'的左边必须有class / struct / union
  错误17错误C2228:'。close'的左边必须有class / struct / union
  错误11错误C2146:语法错误:缺少';'在标识符'myfile'之前   错误10错误C2065:'ofstream':未声明的标识符   错误12错误C2065:'myfile':未声明的标识符
  错误13错误C2065:'myfile':未声明的标识符
  错误15错误C2065:'myfile':未声明的标识符
  错误16错误C2065:'myfile':未声明的标识符

有人可以帮我解决吗?

3 个答案:

答案 0 :(得分:3)

ostream是std命名空间的一部分。因此,您需要添加:

using namespace std;

或者,您可以使用std ::前缀所有ostream实例,即:

std::ofstream myfile

答案 1 :(得分:1)

您忘记使用std::添加所有标准库内容。

答案 2 :(得分:0)

#include <iostream>
#include <fstream>

int const filelist_length = 512;
char *filelist[filelist_length];
// you actually seem to use empty strings rather than null pointers as emtpy
// entries; consider a vector<string> instead

void WriteInDB() {
  using namespace std;
  ofstream myfile ("result.txt");
  for (int i = 0; i < filelist_length; i++) {
    if (strcmp(filelist[i], "") != 0) {
      myfile << filelist[i] << '\n';
    }
  }
}