olka Opublikowano 9 Maja 2005 Zgłoś Opublikowano 9 Maja 2005 Cześć, postanowiłam sobie ostatnio, że zacznę uczyć się C++ i postanowiłam napisać programik, który m. in. zapisuje do pliku znaki wprowadzone z klawiatury. Wszystko pięknie działa, inne opcje są bez zarzutu, tylko po zakończeniu pliku [ctrl + D] program wpada w dziwną pętlę, w ogóle nie reagując na wprowadzane z klawiatury litery. Czy znalazłby się ktoś tak uprzejmy, żeby mi pomóc? Przegooglałam już chyba wszystkie większe kursy w języku polskim i angielskim i nie znalazłam nic na ten temat... Poniżej zamieszczam najkrótszą wersję programu, z której można jeszcze wykumać o co chodzi, kompilowalną i powodującą zapętlenie PHP #include <iostream> #include <fstream> using namespace std; int pisz(char p[50]) { char powrot; cout<<"Wpisz tekst i wcisnij ctrl + d"<<endl; ofstream outfile (p,ios::out); int ch; do { ch=cin.get(); outfile.put (ch); } while (ch!=EOF); outfile.close(); return 0; } int pomoc() { char powrot; cout<<"tutaj wyswietla sie help do programu"<<endl; cout<< "Powrot do glownego menu ? [y] "; while (powrot!='y') cin>>powrot; return 0; } int program() { char r_w, p[50]; cout<<"Wybierz akcje :"<<endl; cout<<"x - utworz"<<endl; cout<<" h - pomoc"<<endl; cout<<" q - wyjscie z programu"<<endl; cout<<"Twoj wybor:"; //--tutaj następuje zapętlenie po powrocie z funkcji pisz do { cin>>r_w; } while (r_w!='r' && r_w!='w' && r_w!='x' && r_w!='q' && r_w!='h'); switch(r_w) { case 'x':{ cout<<"\n\t\t\t Podaj nazwe pliku"; cin>>p; pisz(p); break;} case 'q':{ exit(0);break;} case 'h':{ pomoc(); break; } } program(); return 0; } int main() { program(); return 0; } ps. używam kompilatora g++ pod linuxem ps.2 Proszę zważyć, że jestem raczej osobą początkującą w programowaniu Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...