citire sir de caracter


Freak


Incepator cere ajutor!!! Incers sa citesc un sir de caractere de la tastatura de marime neprecizata si vreau sa pot sa ies din procesul de citire cand vreau eu.As vrea ca apasand tasta enter citirea sirului de caractere sa se termine si ca progamul sa-si faca treaba. Am inteles ca functia cin.get ar trebui sa ma ajute sa fac asta pt ca ar avea o clauza de iesire...dar compilatorul meu nu o recunoaste ... imi da o eroare :Could not find a match for 'istream::get(int *,int,char *)'. E buna functia si nu-i bun c++-u meu? Sau este o metoda mai eficienta care nu presupune folosirea acestei functii. Cu toate ca ceea ce citesc eu este vector de catactere eu vreau sa dau impresia utilizatorului(profu) ca e program serios.Vreau sa pot sa scriu textul fara sa dau enter la fiecare caracater si daca folosesc comanda Cin>>a[1] si scriu tot textul nu se inregistreaza spatiile .
I need advice:cum sa citesc sirul si cum sa opresc citirea.
Hijacker
Vrei o functie care sa citeasca un vector de caractere pana la intilnirea caracterului de rand nou (Enter)?

Daca da, cred ca vrei functia 'gets'.
CODE
void main()
{
char a[20];
gets(a);
cout<<a;
}
 
Alex T.
Salut!


Daca gets() nu este ceea ce te multumeste atunci uite-te in help la getch() si getche().
Desigur trebuie sa tii cont de :
  • sfarsitul de string '\0'
  • ASCII enter =13
  • ASCII backspace=8
  • ASCII space=32
Mai bagi un while si gata!
Freak
Thanks all. A mers perfect functia gets()...cel putin face ce doresc eu sa faca. Apropo...exista vre-un caracter ascii pt downarrow(sageata jos) si ce valoare are?
Alex T.
Salut!


"Down arrow" face parte din tastele speciale! Asta inseamna ca genereaza doua coduri. Din care primul este 0 si cel de al doilea este cel al tastei. Poti sa folosesti cele doua functii pe care ti le-am spus eu mai sus.

CODE
      char c = getch();
      
      while  (c != 27){
          printf("%c are codul %d\n",c,c);
          c = getch();
       }


Incearca secventa asta de cod sa vezi ce face! Dupa cum vezi codul se executa atata timp cat c e diferit de 27 (Codul ASCII pentru ESC).
Cuculetzu
Salut, am avut si eu o problema asemanatoare si chiar m`au ajutat sfaturile si exemplele voastre.
Aceasta este o versiune simplificatã a paginii originale. Pentru a vizita versiunea originala click aici.