Hello,

First of all, I have tried using the search function and browsing the tutorials to solve my problem, but have come up empty-handed so far...

I have a program that basically opens files in a child dir of the current dir, pulls certain data from them and outputs that data in a range of different output files. These output files have the name of the original input file with a certain extension.

Problem is that my output files come up empty. After a test I ran it seems the input file cannot be opened for some reason.

Here is my code (shortened for easier read):

Code:
/* Program to retrieve magnitudes from Astro-WISE tables */

#include <iostream>
#include <iomanip>
#include <math.h>
#include <string>
#include <fstream>
#include <dirent.h>

using namespace std;

int main(){ 
  
  DIR *d;
  struct dirent *dir;
  string g_1 = "Test";
  d = opendir ( g_1.c_str() );
  if (d)
  {
  	while((dir=readdir(d)) != NULL)
	{
		string g = dir->d_name;
		string sl = "/";
		string sldot = "../";
		string filename = sldot + g_1 + sl + g;
		ifstream ifs(filename.c_str());
				
		//adding name extensions for output files
		string mb = "_magblauw";
		string mr = "_magrood";
		
		//merging the original filename with the extensions
		string pathmb = g + mb;
		string pathmr = g + mr;
		
		//file output
		ofstream ofs(pathmb.c_str());
		ofstream ofs2(pathmr.c_str());
		
		//selecting data from input file and writing to different output files
		int i=0;
  		string Value;
  		char M[25];

 		while(ifs>>Value){

    			i=i%24;
    			if(i==3){
      			 ifs>>M;
      			 ofs<<M<<endl;
     			 i++;
    			}
    			if(i==9){
     			  ifs>>M;
    			  ofs2<<M<<endl;
    			  i++;
    			}
    
    			i++;
  			}
	}
	closedir(d);
  }
  return 0;
}
What this does (or is supposed to do) is open the dir "Test", which is a child dir of the dir the program is in, opens the files in it and for each of these files with name XXX output "XXX_magblauw" and "XXX_magrood", which contain certain elements of the original XXX file.

This program works perfectly when I omit the part about opening a dir with files and simply run it on a single file (like ifstream ifs("XXX") and ofstream ofs("XXX_magblauw") etc.).

I have tried adding:
Code:
if( !ifs.is_open() ) {
cout<<"The file could not be opened"}
This indeed returned "file could not be opened".

So why isn't the file opening? What am I doing wrong?

Any help is greatly appreciated! Thanks in advance!