Zakończenie pętli klawiszem esc

0

Witam, niby proste, a jednak. W pascalu to była bułka z masłem, a C++ jak zwykle nie wspołpracuje, tak jakby nie mial kompatybilnosci wstecz mimo swoich bibliotek. Ale mniejsza.

for(int element;(cin>>element)&&(element>=0);) tab.push_back(element);{

Wpisuje do tablicy liczby tak dlugo, dopóki nie wpisze liczby ujemnej. Jednak same liczby dodatnie w tablicy... trochę lipa :P .

Chciałbym zamiast tego warunku dać coś w stylu element=char(27); , tak żeby zakończyć wpisywanie po wpisaniu ESC .

Proszę, może ktoś napisze, jak powinna wyglądać ta linijka :) , dziękuję .

0

Sorki chodziło o char. może na prostszym przykładzie

for (;;){
i++
cin >> x;
tab[i]=x;
if x=char(27){   //czyli ESC z klawiatury 
break;
} 

}

mam nadzieje, ze teraz wiadomo o co mi chodzi. Czytałem sporo, mam to u siebie na uczelni, jestem w temacie, ale to mi umknęło czy coś... nie idzie ...

dodanie znacznika <code class="cpp"> - furious programming

1

nie musi to być escape

cin sam sobie z tym poradzi

http://ideone.com/FaUdtX

0

Pierwsza cześć Twojego kodu mam bardzo podobną. Ale druga część to czarna magia.
auto e: tab?
co to oznacza ?

    for(auto e : tab) {
        std::cout << e << ", ";
    }

    return 0;
}

dodanie znacznika <code class="cpp"> - furious programming

0

Ja dopiero zaczynam, a wy używacie zaawansowanego języka. Przecież nie o to chodzi żebym skopiował i wkleił, tylko żebym to rozumiał. Rzutowanie z inta na chara... myślę że rozwiąże ten porblem na poziomie podstawowym :P, ale jak to się robiło ...

0
for(int element;(cin>>element)&&((char)element='e');) tab.push_back(element);{

może tak ? ... bo nie compiluje :(

dodanie znacznika <code class="cpp"> - furious programming

0
unsigned count=0;
while(true)
  {
   cout<<"Podaj liczbe nr "<<(count+1)<<" (!-koniec): ";
   int value;
   if(cin>>value)
     {
      // zapisujemy gdzieś tą wartość value (ma indeks count)
      ++count;
     }
   else
     {
      cin.clear();
      if(cin.get()=='!') break;
      cout<<"Blond wprowadzenia"<<endl<<endl; // od blondynki
     }
   while(cin.get()!='\n') {}
  }
2
#include <conio.h>
#include <iostream>
using namespace std;

int main()
  {
   for(unsigned count=0;;++count)
     {
      cout<<"Podaj liczbe nr "<<(count+1)<<" (!-koniec): 0";
      int value=0;
      char ch;
      while(((ch=getch())!=27)&&(ch!='\r')) // TODO liczby ujemne
        {
         if(isdigit(ch))
           {
            if(!value) cout<<"\b \b";
            value=10*value+ch-'0';
            cout<<ch;
           }
         else if((ch=='\b')&&(value))
           {
            value/=10;
            cout<<"\b \b";
            if(!value) cout<<'0';
           }
        }
      if(ch==27) break;
      cout<<endl<<"T["<<count<<"]="<<value<<endl;
     }
   cout<<endl<<"koniec"<<endl;
   return 0;
  }

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