[C++] Wprowadzanie danych...

0

Co jest nie tak?? Program ma pobrac 10 znakow lub przerwac pobieranie po
nacisnieciu ENTER.

 #include <iostream.h>
 #include <conio.h>
 
 main()
  { 
    char imie[12], n;
    int k, w;
   
    for(int i=0; i<10;i++)
    {
      n=getche(); imie[i]=n;    //wyswietla znak i wprowadza go do zmiennej imie
     

     if(n=13)
    {
      imie[i]=NULL;
      break;
    }
    else
    if(n=8) //znak kasowania backspace
    {
     k++;   // to licznik ile razy nacisnie ktos backspace
     w=i-k;   // roznica wartosci pentli i licznika
     imie[w]=NULL;  //usun od tego znaku
   }
   }
  
  cout << "\nImie twoje to: "
         << imie;
  cout <<"\n\nKoniec programu";
  getch();
 return 0;
 }

      
0

a nie prościej caaaaaały ten kod zastąpić przez cin>>imie;

0

Witam!
Heh, chyba się przesiadasz z pascala, bo masz takie głupie błędy jakie ja czasem robiłem (nawet jeszcze robię :P)
A mianowicie w warunakch if masz błąd!
Pamiętaj, że w c++ jeden znak "=" to przypisanie!!!, a porównanie to "=="

 if(n<b>==</b>13)
  {
   imie[i]=NULL;
   break;
  }
  else
  if(n<b>==</b>8) //...

Pozdrawiam

0

Zalezy mi glownie na tym aby uzytkownik nie mogl wprowadzic wiecej niz ja
chce znakow na ekran i jak ma byc 10 to ja tak chce a cin>>imie spowoduje ze
jesli wpisze 5 czy 255 to tyle wpisze, a ja tego nie chce!!! Jak to osiagnac?

0

int std::cin.width(int _t);

0

Hmm ...

Ciekawie to wyglada.. ale jakbym mogl prosic o przyklad?? Bylo by milo.
0
#include <iostream>

char tab[25];    // :P

int main()
{
   std::cin.width(10);    //dziala tylko do pierwszego uzycia strumienia
   cin>>tab; 
  
   return 0;
}

//znaczy tutaj powinno byc wszystko ok
//kolega mi zwina symfonie i tak jakos jade tylko z pamieci

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