在c ++中获取构建错误

时间:2014-09-19 02:33:00

标签: c++ visual-studio-2013

我收到一个奇怪的C3681错误,一直说我的某个功能找不到标识符。我很困惑,并尝试使用谷歌时发现的解决方案,但我无法解决它。我宁愿不使用stl。

错误:

错误1错误C3861:'readTheStuff':找不到标识符c:\ users \ xxxxxx \ desktop \ data structures \ 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]);
    }
}

2 个答案:

答案 0 :(得分:4)

您必须先声明一个函数才能调用它。在readTheStuff之前声明readFile,或者更简单地说,将整个函数移到readFile之上

答案 1 :(得分:0)

解决这个问题的两种方法。 1.)在editor.cpp

中的#includes下面添加以下行

void readTheStuff(std :: string command)

或者除了你的其他#include

之外还包括以下一行
#include "editor.h"

在editor.h中,需要出现以下行

void readTheStuff(string command)

这称为原型设计,允许编译器将readTheStuff(line)链接到实际函数reaTheStuff(string command).