c++ - No matching function - ifstream open() -


this part of code error:

std::vector<int> loadnumbersfromfile(std::string name) {     std::vector<int> numbers;      std::ifstream file;     file.open(name); // error here     if(!file) {         std::cout << "\nerror\n\n";         exit(exit_failure);     }      int current;     while(file >> current) {         numbers.push_back(current);         file.ignore(std::numeric_limits<std::streamsize>::max(), '\n');     }     return numbers; } 

and well, kind of have no idea going on. whole thing compiles in vs. need compile dev cpp.

i commented out line throwing errors in code above. errors are:

no matching function call 'std::basic_ifstream::open(std::string&)
no matching function call 'std::basic_ofstream::open(std::string&)


in different parts of code errors 'numeric_limits not member of std', or 'max() has not been declared', although exist in iostream class , works in vs.


why getting error?

change to:

file.open(name.c_str()); 

or use constructor there no reason separate construction , open:

std::ifstream file(name.c_str()); 

support std::string argument added in c++11.

as loadnumbersfromfile() not modify argument pass std::string const& document fact , avoid unnecessary copy.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -