我收到一个奇怪的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]);
}
}
答案 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).