Cześć, mam straszny problem z zapisem do pliku, z którym walczę już od 2 dni, program umożliwia wybór 1 z kilku możliwyh operacji,m.in zapis, poniżej zamieściłam istotne dla problemu fragmenty...
int main() {
...
program();
return 0;
}
int program() {
...
cout<<"Tutaj jest menu programu; m. in: x-zapis do pliku";
do{
//----tutaj program sie petli
cin>>r_w;//typu char
cout<<r_w<<"*";
//--------------------------
}
while (r_w!='r' && r_w!='w' && r_w!='x' && r_w!='q' && r_w!='h');//mozliwe opcje menu
switch(r_w)
{
...
case 'x':
{ ...
cin>>p; // p to nazwa pliku w ktorym zapisujemy
zapisz(p); break;
}
}
program();
return 0;
}
int zapisz(char p[50]) {
....
ofstream outfile (p,ios::out);
int ch;
do {
ch=cin.get();
outfile.put (ch);
} while (ch!=EOF);
outfile.close();
return 0;
}
w przypadku pierwszego wywołania oraz powrotu z innych opcji programu jest tak, jak powinno być, a w przypadku powrotu z funkcji zapisu do pliku(ctrl+d) otrzymuję nieskończoną pętlę (ekran pełen ) bez możliwości wpisania czegokolwiek z klawiatury... ( została wprowadzona jedynie w celu testowym... jak w ogóle nie było tej pętli z warunkami && to program się pętlił na wyświetlaniu menu, czyli w tym samym miejscu)
Jeśli testuje fragment z funkcji 'zapisz' osobno, w main tj bez rekurencji (zaraz po zakończeniu zapisu jest koniec programu), wszystko działa bez zarzutu. Jesli zastąpie return 0 przez exit(0) program kończy się zgodnie z oczekiwaniem (ale przeciez nie o to chodzi, zeby był jednorazowy...).
Znajdzie się jakiś dobry człowiek, który zechce mi pomóc?