Wpisywanie znaków, bez ich wyświetlania + Kontrola wskaźnika w programie.

0

Witam serdecznie.

Mam dwa problemy, mianowicie :

  1. Chciałabym, aby wpisywany przez użytkownika tekst nie pokazywał mu się, ale był "przechwytywany" przez program i zapisywałby się - dajmy na to - w tablicy stringów.

  1. Wczytałam z pliku taki tekst i został on wyświetlony w programie :

Lorem ipsum dolor sit amet enim.

Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.

Maecenas malesuada elit lectus felis, malesuada ultricies._ <--- "podłoga" jest tutaj

Domyślnie, "podłoga" czyli wskaźnik wpisywanego tekstu będzie migał zaraz za tekstem, i to jest ok. Natomiast co należy zrobić, aby po wyświetleniu tekstu otrzymać coś takiego ? :

Lorem ipsum dolor sit amet enim.
_ <--- "podłoga" jest tutaj

Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.

Maecenas malesuada elit lectus felis, malesuada ultricies.

Z góry dzięki za pomoc :)

1

Ad 1. ncurses: getch()
Ad 2. ncurses: gotoxy() wherex() wherey()

0

@up, dzięki, zaraz ogarnę co to za funkcje :)

EDIT. A czy jest jakiś sposób na wykonanie tego samego, lecz z użyciem standardowych bibliotek ? Lub chociażby z użyciem conio.h ?

0

conio to stara nieprzenośna wersja tego co jest w ncurses

0

@_13th_Dragon Ale jest to możliwe do zrobienia biblioteką conio.h ? Próbowałam dołączyć bibliotekę ncurses do programu, lecz odbiór mojego "zadania" nie będzie na moim komputerze, więc nie chcę ryzykować błędną próbę kompilacji programu (np. gdyby nie mieli tam dołączonej ów biblioteki).

0

Jest kilkanaście wersji tego <conio.h> za pomocą tej jego pierwotnej wersji od Borłanda - na pewno tak.
Za pomocą tej dostarczanej razem z gcc - łatwo nie będzie (brak gotoxy()).
Za pomocą jakiekolwiek innej - jak przejdzie następujący kod:

#include <conio.h>
#include <stdio.h>

int main()
  {
   gotoxy(1,1); printf("Ala ma kota");
   gotoxy(5,2); printf("*");
   return 0;
  }

to owszem.

Generalnie to można użyć system("cls"); do czyszczenia ekranu i po każdym wciśnięciu klawisza getch() czyścić i rysować cały ekran.
Czyli ten od gcc też się nada, ale nie będzie to ładnie wyglądać.

0

@_13th_Dragon Hmm, to co polecałbyś zrobić ? Da się w jakiś łatwy sposób uzupełnić kompilator o te brakujące funkcje ? Czy raczej zmienić kompilator na inny?

0
full-zero napisał(a):

... lecz odbiór mojego "zadania" nie będzie na moim komputerze ...
Możesz sobie wybrać jedno z:

0

@_13th_Dragon Ok, załóżmy, że chcę korzystać z pierwszej podanej przez Ciebie opcji. Po pobraniu biblioteki ncurses nie mogę jej dołączyć do kompilatora, ale wpierw skonwertować w konsoli Windowsa, zgadza się? Czy masz jakiś łatwiejszy sposób?

0

Znajdź opis instalacji ncurses dla twojego kompilatora czy środowiska.

0

@_13th_Dragon Czy mógłbyś szybko wysłać jakiś króciutki kod który sprawdzi, czy biblioteka została dobrze zainstalowana?

0

@_13th_Dragon A czy do wykonania tej "poruszającej się gwiazdki" nie łatwiej po prostu wykorzystać bibliotekę <windows.h> ?

#include <windows.h> 

void gotoxy( int x, int y )
{
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}

Coś w tym stylu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1