2014-09-19 3 views
-1

Я получаю странную ошибку C3681, продолжает говорить, что идентификатор не может быть найден для одной из моих функций. Я очень смущен и пытался найти решения при использовании Google, но я не могу решить проблему. Я бы предпочел не использовать stl.Получение ошибки сборки в C++

Ошибка:

Ошибка 1 Ошибка C3861: 'readTheStuff': идентификатор не найден C: \ Users \ хххххх \ Desktop \ структуры данных \ homework2 \ homework2 \ editor.cpp 38 1 Homework2

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 
int readFile(const char *fileName) { 
    ifstream myReadFile; 
    string line; 
    int i = 0; 
    myReadFile.open(fileName); 
    if (myReadFile.is_open()) { 
     while (!myReadFile.eof()) { 
      getline(myReadFile, line); 
      line += " "; //adds a space after every line 
      //cout << line << endl; 
      readTheStuff(line); 
     } 
    } 
    myReadFile.close(); 
    return 0; 
} 

void readTheStuff(string command){ 
    cout << command; //testing 
} 

int main(int argc, const char* argv[]){ //when they call, going to pass two parameters 
    if (argc > 2){ 
     cout << "Error, more than one file given" << endl; 
    } 
    else if (argc < 2){ 
     cout << "Error, no file given" << endl; 
    } 
    else if (argc == 2){ 
     readFile(argv[1]); 
    } 
} 

ответ

4

Вы должны объявить функцию, прежде чем сможете ее вызвать. Либо сделайте заявление readTheStuff до readFile или, проще говоря, просто переместите всю функцию выше readFile

0

2 способа исправить это. 1.) Включить следующую строку непосредственно под ваши директивы #includes в editor.cpp

аннулируется команда readTheStuff (станд :: строка)

или включить следующую строку в дополнении к другим директивам #includes

#include "editor.h" 

внутри editor.h следующая строка должна будет появиться

void readTheStuff(string command) 

Это называется прототипирование и позволяет компилятору Ли nk readTheStuff(line) до фактической функции reaTheStuff(string command).

Смежные вопросы