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ć???