Skocz do zawartości
Mimek

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

Rekomendowane odpowiedzi

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 :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×