Ошибка компиляции во входных \ выходных файлах - PullRequest
0 голосов
/ 16 января 2011

Это мой код:

#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 должен быть класс / структура / объединение
Ошибка 17 ошибка C2228: слева от «.close» должен быть класс / структура / объединение
Ошибка 11 ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'myfile'
Ошибка 10 Ошибка C2065: «ofstream»: необъявленный идентификатор Ошибка 12, ошибка C2065: «myfile»: необъявленный идентификатор
Ошибка 13, ошибка C2065: «myfile»: необъявленный идентификатор
Ошибка 15: ошибка C2065: «myfile»: необъявленный идентификатор
Ошибка 16, ошибка C2065: «myfile»: необъявленный идентификатор

Кто-нибудь может мне помочь разрешить их?

Ответы [ 3 ]

3 голосов
/ 16 января 2011

ostream является частью пространства имен std.В качестве такового вам необходимо добавить:

using namespace std;

В качестве альтернативы вы можете использовать префикс всех экземпляров ostream с помощью std ::, то есть:

std::ofstream myfile.

1 голос
/ 16 января 2011

Вы забыли добавить все стандартные элементы библиотеки к std::.

0 голосов
/ 16 января 2011
#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';
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...