void bot_manager_item::create_games()
{
games.clear();
std::ifstream paths_in(\"C:\\\\Users\\\\bill hank\\\\Documents\\\\bot_plugins\\\\directory_listing.txt\",
If paths_in.good()
keeps failing then it means that some of the stream error flags are set (badbit
, eofbit
or failbit
).
eofbit
- end of file was reachedbadbit
- error with the stream buffer such as memory shortage or an exception inside the stream buffer is castfailbit
- some other error beside eof was reachedIn order to find out what happened, you need to check which errorbit is set first, and then find out more about the specific error, and what can cause it.
Out of curiosity, does this code output the contents of the file correctly? If this code works, then the problem is something else. If this code doesn't work, then that likely means that the file either isn't where you specified, or you don't have read permissions on it.
void bot_manager_item::create_games() {
std::ifstream paths_in("C:\\Users\\bill hank\\Documents\\bot_plugins\\directory_listing.txt");
char q[5000];
while (paths_in.getline(q, 5000)) {
std::cout << q << std::endl;
}
}
This code does a few minor things differently.
std::ios::in
doesn't need to be explicitly specified for std::ifstream
.
it doesn't use is_good, while that should be fine, you can just treat the std::ifstream
as a bool which will be true
when it is in a good state.
getline() returns a reference to the stream it operated on, so you can just put that whole line in the condition.
cosmetic, but no need to explicitly close the ifstream
if it is about to go out of scope.