Skocz do zawartości
olka

[c++] "pętlący Się" Strumień ?

Rekomendowane odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...