我正在用C ++做stanford课程cs106b,而且我被困住了,我似乎无法做到正确。对于知道这种东西的人来说,这可能是一个非常简单的解决方案。 我有三个文件,一个是main.cpp,另一个是randword.h和randword.cpp。在randword.h中,我有#include“simpio.h”,这是一个stanford库,其中定义了GetLine()。我可以让getLine()在main.cpp文件中工作,但是当我尝试编译时,我在randword.cpp中得到“未定义的'GetLine()'”引用。
我使用的是代码块,我使用了“添加文件...”功能。
这是main.cpp的代码:
#include "randword.h"
/* Private function prototypes */
/* Main program */
randword rw;
int main() {
rw.initDictionary();
}
randword.h:
#ifndef RANDWORD_H_INCLUDED
#define RANDWORD_H_INCLUDED
#include <iostream>
#include <fstream>
#include <stdio.h>
#include "simpio.h"
#include "strutils.h"
using namespace std;
class randword{
public:
void initDictionary();
string chooseRandomWord();
string strArray[];
private:
};
#endif // RANDWORD_H_INCLUDED
random.cpp:
#include "randword.h"
using namespace std;
void randword::initDictionary(){
string fileName;
ifstream infile;
fileName = GetLine();
infile.open(fileName.c_str());
if(infile.fail()) cout << "Couldn't read file.";
return;
}
string randword::chooseRandomWord(){
string st1;
return st1;
}
任何帮助将不胜感激!我怀疑这个问题已经发布了,但我找不到了。谢谢!
答案 0 :(得分:0)
尝试使用代码块手动添加库
randword.cpp没有使用GetLine
所需的库文件,您可能已将其包含在头文件中,但这不会延续到randword.cpp。您需要像在任何其他文件中一样包含库文件,以便能够访问它的函数。
//randword.cpp
#include <iostream>
#include "simpio.h" //include again!!!
//code here....