Using C++ and Xcode I always run into this problem where linker command fails. I don't know what this means. I'm creating an elementary program that consists of 3 files. A main.cpp, and a class file that has a header. The main file is empty. This what the other two look like:
student.hpp :
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <sstream>
std::string line;
class Student{
public:
std::string fullName;
int projectGrade;
int quizGrade;
int midtermGrade;
int finalGrade;
int finish;
int start = 14;
std::string getStudentName();
int getProjectGrade();
int getQuizGrade();
int getMidtermGrade();
int getFinalGrade();
double getOverallGrade();
bool login(std::string username, std::string password);
bool login(std::string username);
};
student.cpp:
#include "student.hpp"
std::string Student::getStudentName(){
finish = line.find("\t", start);
fullName = line.substr(start, finish);
return fullName;
}
int Student::getProjectGrade(){
start = line.find("\t", start) + finish;
finish = start + 2;
std::stringstream stream(line.substr(start, 2));
stream >> projectGrade;
return projectGrade;
}
int Student::getQuizGrade(){
start+=3;
std::stringstream stream(line.substr(start, 2));
stream >> quizGrade;
return quizGrade;
}
int Student::getMidtermGrade(){
start+=3;
std::stringstream stream(line.substr(start, 2));
stream >> midtermGrade;
return midtermGrade;
}
int Student::getFinalGrade(){
start+=3;
std::stringstream stream(line.substr(start, 2));
stream >> finalGrade;
return finalGrade;
}
double Student::getOverallGrade(){
return round((projectGrade + quizGrade + midtermGrade + finalGrade)/40)*10;
}
bool Student::login(std::string username, std::string password){
std::ifstream studentFile;
studentFile.open("/Users/griffin/desktop/Data Structures/Data Structures1/Data Structures1/Students.txt");
if(studentFile.is_open()){
while(getline (studentFile,line))
{
if ((username.length() == 7 && username.substr(0,4).compare("u000") == 0 && line.find(username) != std::string::npos) && (password.length() == 6 && password.substr(0,2).compare("pw") == 0 && line.find(password) != std::string::npos))
return true;
}
}
return false;
}
bool Student::login(std::string username){
std::ifstream studentFile;
studentFile.open("/Users/griffin/desktop/Data Structures/Data Structures1/Data Structures1/Students.txt");
if(studentFile.is_open()){
while(getline (studentFile,line))
{
if (username.length() == 7 && username.substr(0,4).compare("u000") == 0 && line.find(username) != std::string::npos)
return true;
}
}
return false;
}
The main file includes student.hpp. Is this a problem on Xcode's end or do I have an error in my code?
Main.cpp
#include "student.hpp"
int main(int argc, const char * argv[]) {
return 0;
}