[ Fidelito_Castro @ 26.03.2008. 01:34 ] @
Imam problem sa ulaznim baferom!
Interesuje me da li bi neko mogao da mi da savet kako da vratim medjuregistar(bafer) na standardu vrednost - resetujem bafer ?
U C-u sam odradjivao preko naredbe fflush(stdin); , a video sam da se u C++ koristi cin.get() ???
Unapred zahvalan svima koji su spremni da pomognu !


Code:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
  const int DIM = 6; 
  char buffer[DIM];

  //Unos prvih 5 karaktera
  //Problem kod unosa vise od 5 karaktera
  cout << "Unesite 5 karaktera stringa: > ";
  cin.getline(buffer, DIM);

  cout << endl << endl;
  cout << "String koji ste uneli > " << buffer << endl;

  cout << endl << endl;
  cout << "Unesite sledecih 5 karaktera stringa: > ";
  cin.getline(buffer, DIM);

  cout << endl << endl;
  cout << "String koji ste uneli: > " << buffer << endl;

  system("PAUSE");
  return EXIT_SUCCESS;
}


[Ovu poruku je menjao Fidelito_Castro dana 26.03.2008. u 07:44 GMT+1]
[ X Files @ 26.03.2008. 07:44 ] @
Probaj možda ovako:
Code:

void flush( istream &i_stream )
{
   i_stream.clear();
   char tmp_char;
   while( ( (tmp_char = i_stream.get() ) != '\n' ) && ( tmp_char != EOF ) )
      ;
   i_stream.clear();
}


Code:

// ...
flush( cin );
// ...


[ Eurora3D Team @ 26.03.2008. 16:06 ] @
Moze da radi i ovako ...
Code:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    const int DIM = 6;
    char buffer[DIM];

    //Unos prvih 5 karaktera
    //Problem kod unosa vise od 5 karaktera
    cout << "Unesite 5 karaktera stringa: > ";

    //cin.getline(buffer, DIM);
    //\\ OVO
    cin >> buffer;
    buffer[5]=0; // nula na kraju
    //\\//\\//\\//\\//\\//\\//\\//\\

    cout << endl << endl;
    cout << "String koji ste uneli > " << buffer << endl;

    cout << endl << endl;
    cout << "Unesite sledecih 5 karaktera stringa: > ";

    //cin.getline(buffer, DIM);
    //\\ OVO
    cin >> buffer;
    buffer[5]=0; // nula na kraju
    //\\//\\//\\//\\//\\//\\//\\//\\

    cout << endl << endl;
    cout << "String koji ste uneli: > " << buffer << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}