Cześć,
Mój algorytm ma za zadanie w przypadku zmieszczenia się w zakresie tablicy zapisać do niej liczbę a gdy wykroczy poza niego, wtedy ma zapisać daną wartość do pliku na konkretnej linii (tak żeby plik był swego rodzaju tablicą). W moim algorytmie który napisałem problem jest taki , że gdy zapiszemy przykładowo liczbę 10 do 10 linii to jest wszystko okej, ale jak już chcemy zapisać liczbę 9 do 9 linii to liczba 10 nagle przechodzi do linii pierwszej, gdy sie dopisze liczbę 8 do 8 linii wtedy liczba 9 spada na liczbę 10 do linii drugiej itd.. Ktoś widzi może jak to rozwiązać? Oto mój algorytm z funkcją main do testów:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
void save(int* tab, int i, int tabSize, int input) {
vector <string> copy;
int Hmany = 0;
if (i < tabSize) {
tab[i] = input;
}
else {
ifstream read;
read.open("silnia1.txt");
if (read.is_open()) {
int z = 0;
for (z = 0; z<i - tabSize; z++) {
string pass;
// cout <<"i-tabSize:" <<i - tabSize << endl;
read >> pass;
copy.push_back(pass);
Hmany++;
pass.clear();
}
//cout<<"\n Hmany = "<<Hmany<<" \n ";
}
read.close();
ofstream save;
save.open("silnia1.txt");
if (save.is_open()) {
int z = 0;
for (z = 0; z <= Hmany; z++) {
if (z == i - tabSize) {
save << input << endl;
}
else {
string kopia = copy[z];
//cout << endl << copy[z] << " " << kopia << endl;
save << kopia << endl;
}
}
}
save.close();
};
};
int main() {
int n =1;
int *tab;
tab = new int[n];
save(tab,10,n,10);
save(tab,9,n,9);
save(tab,8,n,8);
return 0;
}