ошибка c : ссылка в функции _main при чтении файла

#c

#c

Вопрос:

Когда я пытаюсь прочитать файл с помощью функции

 void readFile(string fileName, string* anArray) {
    unsigned int lineCounter = 0;
    ifstream inFile = ifstream(fileName);

    while (!inFile.eof()) {
        string fileLine;
        inFile >> fileLine;
        if (!fileLine.empty()) {
            anArray[lineCounter] = fileLine;
              lineCounter;
        }
    }
    inFile.close();
}
  

Я получаю приведенную ниже ошибку, которая, как я полагаю, связана с указателем на массив строк?

1>Main.obj : ошибка LNK2019: неразрешенный внешний символ «void __cdecl resource::ReadFile(класс std::basic_string,класс std::allocator >,класс std::basic_string, класс std::allocator > *)» (?ReadFile@resource@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV23@@Z) ссылается в функции _main

Комментарии:

1. Уверен, что это не полная ошибка.

2. ибп.. обновление, входящее

3. Он жалуется на невозможность найти определение resource::readFile . В каком исходном файле он определен и ссылаетесь ли вы на него?

4. readFile Предполагается, что это функция-член, определенная вне класса resource ? Если это так, вы, вероятно, имели в виду void resource::readFile(...) { .

5. Да, да, боже, я пропустил эту часть…

Ответ №1:

 void readFile(string fileName, string* anArray) {
  

Это определение функции-члена, но вы забыли написать имя класса.

 void resource::readFile(string fileName, string* anArray) {
  

Как у вас есть сейчас, вы определили новую функцию в глобальном пространстве имен, которая не имеет ничего общего с resource , поэтому при main попытке использования resource::readFile определение не может быть найдено.

Комментарии:

1. @Xerath: Ну, компьютеры не могут догадаться, что вы хотели написать, но не написали!