Jump to content
Patrunjel

Ceva asemanator conio.h pe Linux [C++]

Recommended Posts

Salut, mi-a venit prin cap sa-mi fac un joculet (nu cine stie ce, insa mie mi se pare misto, chiar daca e in consola :)) ), insa pentru asta am nevoie de clrscr() (sau un sfat legat de cum actualizez outputul, si Trolii tre sa se miste, nu? :)) ), si as mai avea nevoie de o idee legata de introducerea datelor de la tastatura fara a mai apasa enter (si, eventual, fara sa apara acolo in consola, insa asta nu e neaparat necesar, daca folosesc ceva gen clrscr).Ma poate ajuta cineva?

Link to comment
Share on other sites

system("cls"); pe windoz si system("clear"); pe linux cat despre input fara enter poti cu hook-uri pe key-uri (doar in consola ta ca banuiesc ca nu vrei sa faci keylogger :P)

dar mai bine decat sa faci cu clear ..(e foarte greu) schimbi tu dinamic consola pe fiecare coordonata in parte (ti in memorie 2 matrici una pentru starea initiala si una pentru starea finala si modifici pe consola doar unde s-a schimbat ... nu tot)

edit:


#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif

si ai clrscr fara conio

edit2:

cu asta alegi pozitia din consola unde afisezi ( din cate tin minte merge si win si lin )


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

Edited by Xander
Link to comment
Share on other sites

Asta ma gandeam si eu, sa rescriu doar ceea ce s-a schimbat, insa habar n-am cum se face asta.

In legatura cu restul chestiilor pe care le-ai zis, mersi mult, dar n-am inteles o iota :))

PS: nu vreau sa fac niciun keylogger, bre, fac un RPG in consola, tu esti H, te misti, si trolii is T(si ei se misca :)) ), si daca te-ai izbit in trol iti scade 20 viata, insa il omori.A,da, creste cate 1viata la 5 secunde. Cel putin asta-i planu :)) de azi la amiaza pana acuma abea am reusit sa generez harta (si sa fac cateva teste, sa vad cat de mare sa fie), si sa fac trolii sa se miste(vreo 2 ore m-am chinuit :)) nu stiam cum sa-i fac sa evite muntii, si bordura, si pe ei intre ei :)) ).Oricum, mie mi se pare interesant, daca vrea careva sa citeasca sursa o pun si pe-aici cand e gata.

PPS: Am bagat codu, insa imi raman reziduuri de harta in partea de sus :)) .Decat sa iau moca la copy-paste, mai bine zi-mi ceva termeni de cautat pe google :)

Edited by Patrunjel
Link to comment
Share on other sites

din conio iti trebuie doar clrscr nu? adica:


#include <stdlib.h>
#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif

cand vrei sa cureti ecranu folosesti


clrscr();

P.S.: nu dai include conio sau altceva decat ce am scris eu mai sus

exemplu complet ... lol



#include <stdio.h>
#include <stdlib.h>
#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif
int main()
{
for(int i=1;i<=10000;i++)
{
printf("aaa %d\n" , i);
clrscr();
}
}

Link to comment
Share on other sites



include <stdio.h>
#include <stdlib.h>
#include <termios.h>


struct termios initial_settings,
new_settings;



int main(int argc, char *argv[])
{
int n;

unsigned char key;



tcgetattr(0,&initial_settings);

new_settings = initial_settings;
new_settings.c_lflag &= ~ICANON;
new_settings.c_lflag &= ~ECHO;
new_settings.c_lflag &= ~ISIG;
new_settings.c_cc[VMIN] = 0;
new_settings.c_cc[VTIME] = 0;

tcsetattr(0, TCSANOW, &new_settings);

while(1)
{
n = getchar();

if(n != EOF)
{
key = n;

if(key == 27) /* Escape key pressed */
{
break;
}
if( 'A' <= key && key <= 'Z') key += 'a' - 'A';
printf("%c" , key);
/* do something useful here with key */
}
}

tcsetattr(0, TCSANOW, &initial_settings);

return(0);
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...