Skocz do zawartości

[C++]Operator >>, obsługa entera.


Rekomendowane odpowiedzi

Opublikowano

Witam serdecznie :)

 

Napisałem sobie metodą z przeciążeniem operatora strumieniowego:

GrDziekanska & GrDziekanska::operator >>(std::istream &stream) {stream >> NazwaKierunku >> Wydzial >> RokStudiow >> Semestr >> Nr; Oznaczenie+=Wydzial+'/'+NazwaKierunku+'/'+'R'+itos(RokStudiow)+"/S"+itos(Semestr)+"/G"+itos(Nr); return *this;}

 

Ale mimo poprawnego działania kodu, nie uzyskałem oczekiwanego efektu.

 

Czy jest możliwość uzyskania, żeby podczas wpisywania grupy dziekańskiej do tabeli, naciśnięcie klawisza ENTER lub TAB powodowało nie przejście do nowego wiersza lub wstawienie standardowego tabulatora poziomego, ale wywołanie funkcji GoToXY(x+15, y)?

 

Próbowałem to osiągnąć przez użycie getch():

tab = getch();
if(tab == 9)
    O->GoToXY(O->GetX()+15, O->GetY());

Ale niestety, nie działa w trakcie, gdy metoda z operatorem jest wywołana.

 

Proszę o pomoc i pozdrawiam :)

Opublikowano

Bodajże input stream również rozdzielany jest poprzez spacje, tj.

int a, b, c;
cin>> a >> b >> c;
cout<<"a = "<< a<< "\n"<<"b = "<< b<< "\n"<<"c = "<< c<< "\n";
// #>10 20 30
// a = 10
// b = 20
// c = 30

Opublikowano
Bodajże input stream również rozdzielany jest poprzez spacje, tj.

int a, b, c;
cin>> a >> b >> c;
cout<<"a = "<< a<< "\n"<<"b = "<< b<< "\n"<<"c = "<< c<< "\n";
// #>10 20 30
// a = 10
// b = 20
// c = 30

 

istream jest rozdzielany przez spacje, to się zgadza, ale pracuję w tabeli na wzór excela, tylko pod konsolą, i chciałbym zrobić obsługę klawisza TAB. Próbowałem z ReadConsoleInput, ale też nie działało.

 

Jakieś jeszcze pomysły?

Opublikowano
Spróbuj manualnie pobierać znaki z klawiatury np. przez getchar aby rozpoznawać pojedyncze znaki.

 

Rozwiązałem to po chamsku, sczytując z klawiatury poszczególne komórki tabeli, a po sczytaniu, tworząc obiekt. Omijam sczytywanie z jednego strumienia w ten sposób. Po każdym odczycie z klawiatury zatwierdzonego enterem, przeskakuje do następnej komórki.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...