У меня эта простая, но раздражающая проблема.
ifstream dataFile (fileName) работает нормально, если fileName жестко запрограммирован или назначен через строковую переменную, однако при предоставлении из аргумента он не может найти файл.
У меня есть следующий код -
//This function will get filenames from a .txt file
//Then call getDataFromFile() with filename as argument
void getFileNames(string dataFileName){
string line;
ifstream dataFile(dataFileName);
if(!dataFile){
cout << "Error! No such file found! Ending Program." <<
endl;
exit(0);
}
while(getline(dataFile,line)){
if(!line.empty()){
getDataFromFile(line);
}
}
}
//**Issue is inside this function**
void getDataFromFile(string fileName){
//Files are under "data/" path -
//To access Jan.csv - "data/Jan.csv"
string filePath = "data/Jan.csv"; //Works
string filePath = "data/"+fileName; //Not working - Unable to find file
ifstream dataFile(filePath);
//...Rest of code
}
Ниже приведено содержимое .txt файла
Jan.csv
Feb.csv
Я попытался передать строку как строку c, используя
ifstream dataFile (filePath.c_str ());
и все еще не может найти файл.