[ Ozzy80 @ 23.12.2012. 21:45 ] @
Imam jedan problem sa ovim sledecim kodom. Naime kad mu se ukuca kao komandu 1 prvi put sve odradi al kad se kuca drugi put isto 1 onda on uopste ne koristi ovaj drugi deo da ucita zadatak nego napse samo "Unesite zadatak:" i onda odma prebaci da nije tacan posto mu nesto ne da da procita unos sa tastature te on procita kao da nista nisam uneo i samim tim ode na else granu. Kad se unese 2 i 3 ma posle kog puta super radi. Drugi problem je kad se god nesto unese sto nije broj unese on se zabaguje tj pocne ovo do scanf-a da ispisuje nebrojeno mnogo puta. Ako bi mi neko mogao da ispravi kod bio bih mu veoma zahvalan :)



Kod
Code:

int main()

 
 char c;
  
  while(1){
           
  c=0;                
  std::cout << "1    Ispisi rec        " << "\n";
  std::cout << "2    Brisanje ekrana   " << "\n";
  std::cout << "--------------------------------------"<< "\n";
  std::cout << "3    Izlaz              "<< "\n\n";
  
  std::cout << "\nUnesite vas izbor: "<< "";
  std::cout << "%d",&c;
  
  switch(c){
  case 1:
       {
        std::cout << "\n--------------------------------------"<< "\n";
        std::cout << "\nUbacite vas zadatak tako da koristite: \nZa sile - \nZa skup vektora >" << "\n\n";
        std::cout << "Nakon sto zavrsite pritisnite enter da bi ste overili \na zatim ctrl+z i onda pritisnite ponovo enter " << "\n\n";
        std::cout << "--------------------------------------"<< "\n\n";
        std::cout << "Unesite zadatak: " << "\n";
            
        std::string input(std::istream_iterator<std::string::value_type>(std::cin),
                         std::istream_iterator<std::string::value_type>());
                    
        Parser parser(input); 
        
          std::cout << std::boolalpha;
          if(parser.primer1())
              std::cout << "Zadatak je tacan    " << "\n";
          else if(parser.primer2())
              std::cout << "Zadatak je tacan    " << "\n";
          else if(parser.primer3())
              std::cout << "Zadatak je tacan    " << "\n";
          else{
              std::cout << "\nZadatak nije tacan\n" << "\n";
              std::cout << "<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>"<< "\n\n\n\n";
              }
        break; 
        }
  case 2:{
       system("cls");
       break;
       }
  case 3:
        exit(0);
        
  default :{
       std::cout << "Uneli ste nepostojecu komandu, probajte ponovo: \n\n\n"<< "\n";
       break;
       }    
  }
}
  return 0;
}

EDIT: CODE tagovi

[Ovu poruku je menjao X Files dana 24.12.2012. u 08:30 GMT+1]
[ Lukic111 @ 23.12.2012. 22:03 ] @
Ne vladam bas preterano sa c++ ali:

1. Zasto ti je promenjiva c char mislim da je pametnije da bude int.
2.u mesto std::cout << "%d",&c; koristi cin>>c;
[ Nedeljko @ 24.12.2012. 06:26 ] @
Pomoću "cout <<" se ispisuje, a učitava se pomoću "cin >>".

Drugo, ako već učitavaš znak, a ne broj, onda slučajevi u switch naredbi ne treba da budu 1, 2 i 3, nego '1', '2' i '3'. Imaj na umu da je npr. '1'==49.