Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno borland C-nacitanie n znakov s medzerami z klavesnice

Zdravim, potrebujem pomoct s nacitanim n znakov(moze obsahovat aj medzere)-mam to nejak takto:

....
typedef struct{
 char meno[20];
 char priezvisko[30];
 } clovek;

void nacitaj(char udaj[],int poc)
{int i=0,j=0;
 for (j=0;j<poc;j++)
  udaj[j]='\0';
 i=0;
 while ((j=getchar())!='\n')
  {if (i<(poc-1))
   {udaj[i]=j;
   i++;}
   else break;}}

void main(void)
{clrscr();
 printf("Zadaj meno(max 20 znakov):\n");
 nacitaj(osoba.meno,20);
 printf("Zadaj priezvisko(max 30 znakov):\n");
 nacitaj(osoba.priezvisko,30);
 printf("\nMeno: %s",osoba.meno);
 printf("\nPriezvisko: %s",osoba.priezvisko);
 getch();}

...problem ale je, ze ked sa prvy string(meno) zada dlhsi ako 20 znakov, tak sa tie prebytocne znaky nacitaju do toho dalsieho stringu(prieyvisko). Poradte mi, ako to spravit(a aby to bolo cim jednoduchsie). dik.

Předmět Autor Datum
Ahoj. Zkus použít vyprázdnění bufferu, je na to funkce flush(). Tu zavolej pro jistotu vždy po (kaž…
Flash_Gordon 17.11.2007 22:18
Flash_Gordon
no hladal som nieco s tym flush, ale nejak som sa nedopracoval k niecomu co by mi pomohlo. Nieco so…
Pavol 18.11.2007 10:47
Pavol
Preboha, to si od koho opisal ze sa v tom ani nevyznas? treba vyhodit to else break;}} resp dat nami… poslední
MM.. 18.11.2007 16:55
MM..

Zpět do poradny Odpovědět na původní otázku Nahoru