这是我的代码:
#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':未声明的标识符
有人可以帮我解决吗?
答案 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';
}
}
}