[C++] [po części rozwiązane] Jak mogę zapisać dane do zmiennej string za pomocą NCurses?


(sajmon17099) #1

Witam. Robię prostego clickera na Linuxa do którego niezbędna jest mi biblioteka ncurses.h. Niestety chciałbym też korzystać z iostream ale nie można tego dobrze zrobić z NCurses. I o ile w większości przypadków NCurses może zastąpić iostream (niewygodnie ale działa, to tak jak używanie lekko ulepszonego printf zamiast cout w prostych zdaniach bez większego formatowania poza nową linijką) to niestety nie mogę znaleźć alternatywy dla cin. Owszem, jest getch() ale to bierze tylko jeden znak z klawiatury, a jak zechcę wpisać więcej to zbytnio mi się nie przyda.

 

Chcę bym w programie mógł wpisać w pewnym momencie dane do zmiennej string by potem te dane mogły być przeanalizowane w if, ale nie wiem jak to zrobić, cin nie działa a getch() się nie przyda bo działa na tylko jeden znak.

 

EDIT:

Samemu znalazłem rozwiązanie, chociaż to właściwie nie rozwiązanie a obejście problemu. Polega to na tym że zamiast string należy użyć tablicy char i ta tablica char musi mieć zdefiniowaną długość, inaczej pojawi nam się komunikat o naruszeniu ochrony pamięci.

Już mnie to trochę denerwuje, muszę rezygnować z bibliotek C++, to tak jakbym się cofał do C.

 

Kolejny EDIT:

Można też jednak użyć cin, u mnie nie chciało działać bo nie dałem przed nim refresh();, problem jest z tym za to taki że nie widzimy co piszemy.


(stasinek) #2

A próbowałeś scanf, gets?

http://www.cplusplus.com/reference/cstdio/gets/

 


(sajmon17099) #3

To chyba jest do odczytywania plików tekstowych…

Poza tym, znalazłem inne rozwiązanie. cin jakoś teraz działa, tylko że nie pojawia się żaden znak jak się pisze (ale za to jak się napisze i wciśnie enter to to co zostało napisane jest poprawnie odczytywane). Wiecie może jak sprawić by NCurses nie chowało tego co się pisze, tylko żeby to wyświetlało na ekranie? Jak się nie używa NCurses to to co się pisze przy cin widać, ale z NCurses tekst jest chowany.