So I am trying to write this small program using a void method from a source file but it does not work..It is giving me some weird error, that I can't comprehend. My code SEEMS correct but maybe you real programmers out there can help me point out my mistake, as the error is
Here are my 3 filesCode:main.obj : error LNK2019: unresolved external symbol "void __cdecl ordered(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >)" (?ordered@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$list@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z) referenced in function _main
Code:#include <iostream> #include <list> #include <string> #include "oLine.h" #include <vector> using std::cout; using std::endl; using std::string; using std::cin; using std::list; int main(){ //asks for user input cout << "Please type in your input: "; //the container list<string> sentence; string x; //adds user input to container while(cin >> x){ sentence.push_back(x); } //sorts out sentence list<string> sorted = sentence; sorted.sort(); //starts container from beginning, and continues until the end for(list<string>::iterator iter = sorted.begin(); iter != sorted.end(); iter++){ ordered(*iter, sentence); } return 0; }Code:#ifndef GUARD_oLine_h #define GUARD_oline_h //oline.h #include <string> #include <list> void ordered(std::string, std::list<std::string>); #endifThanks for your help!Code:#include "oLine.h" #include <string> #include <iostream> #include <list> using std::string; using std::cout; using std::list; void ordered(string& start, list<string>& phrase){ //counts the number of words outputted list<string>::iterator count = phrase.begin(); //current word the iterator is on list<string>::iterator current = phrase.begin(); //while the count is not the end while(count != phrase.end()){ //if start equals current and current isnt the end //we output current and increment current along with the count if(start == *current && current != phrase.end()){ cout << *current << ' '; current++; count++; } //since it is the end, we output current and set it back to the beginning else if(start == *current && current == phrase.end()){ cout << *current << ' '; current = phrase.begin(); count++; } //otherwise just increment current else{ current++; } } }



LinkBack URL
About LinkBacks



