Re: [ROOT] Using an array of strings

From: Maarten Ballintijn (maartenb@mit.edu)
Date: Wed Aug 28 2002 - 14:34:49 MEST


Hi Stelios,

You need to properly allocate memory for the filenames.
Something like the following should work:

#include <fstream>
#include "TString.h"
#include "TFile.h"

ifstream fin("LIST");

void test() // not returning any value
{
	TString files[17];

	for(int idx=0; idx<17; idx++) {
		fin >> files[idx];
		cout << files[idx].Data() << endl;

		TFile *f = TFile::Open(files[idx],"read");

		// Your code

		delete f; // avoid memory leak
	}
}

It would make sense to add some error checking.

Regards,

Maarten.

On Tue, 2002-08-27 at 18:12, Stilianos Kesisoglou wrote:
> Hi,
> 
>     I am having a problem with the following simple piece of code:
> 
> 1:   #include <fstream>
> 2:   #include <cstring>
> 3:   #include "TFile.h"
> 4:
> 5:   ifstream fin("LIST");
> 6:   
> 7:   int test()
> 8:   {
> 9:       char input[17][];       
> 10:       for (int idx=0; idx<17; idx++)
> 11:       {
> 12:           fin >> input[idx];           
> 13:           cout << input[idx] << endl;
> 14:                       
> 15:           TFile *f = new TFile(input[idx],"read");
> 16:                   .   
> 17:                   .   (my code here)
> 18:                   .
> 19:           f->Close();             
> 20:       }  
> 21:   } 
> 
>     My intention is to read from a file named "LIST", a list of filenames and then
> open them in sequence, run my code and close them.
> 
>     Although I can see from the print-out (line 13), that the variable "input[idx]" holds my filename,
> the attempt to open the file fails (line 15).
> 
>     Can anyone help me?
> 
>     Thanks !
> 
> Stelios.
-- 
Dr. Maarten Ballintijn

MASSACHUSETTS INSTITUTE OF TECHNOLOGY       Email: maartenb@mit.edu
Room 24-410                                 Phone: +1 (617) 253 4184
77 Massachusetts Avenue                     Fax:   +1 (617) 253 4360
Cambridge, MA 02139, USA                    http://www.mit.edu/~maartenb



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET