Piszę program mający obrabiać pliki z danymi. Program wczytuje dane z kilku plików różniących się numerami. Część otwierająca poszczególne pliki wygląda tak:

 for (i=0;i<12;i++){        
	sprintf((char*)tmp.c_str(), "%d", i+1);
	iter = tmp.c_str();
	filename = base;
	filename.insert(12,iter); 
	strcpy( inname, (filename).c_str() );
	infile.open(inname,ios::in);
	if(!infile){
	      cerr << "nie moge otworzyc "<< inname << endl;
	      system("pause");
	      }
	else { 
	  infile.close();
	  ring(inname,i);
		}
	} 	

część wczytująca prosedury ring(inname,i) wygląda następująco:

int ring (string name,int k){
      int i,j;
      char inname[100];
      ifstream infile ;
      ofstream outfile ;

      strcpy( inname, (name).c_str() );
      infile.open(inname,ios::in) ;
      cout << "otwarto " << inname << endl;
       for(i=0;i<imax;i++) {
        if(infile.fail()){break;}
        infile >> kk[i] >> A[i] >> ev[i] >> Imi[i][0] >> Imi[i][1] >> Imi[i][2] >> Imi[i][3] >> Imi[i][4] >> Imi[i][5] >> Imi[i][6] >> Imi[i][7];
            }

Problem w tym że do wczytywanych wartości kolumn program dodaje nie na początku numery plików tzn. na przykład odczytując plik "nazwa5" kolumnę

1 1000 0.04

wczytuje jako:

51 51000 50.04

rozumniem że to jakiś problem z pamięcią, że numer pliku "przyczepia" się do wczytywanych wartości, ale jak się tego pozbyć???