Jak wczytać zmienną?

0

Witam.Jestem nowy...W szkole uczylem sie o wczytywaniu zmiennych za pomocą cin>>(konsola)
jak zrobic aby wczytać zmienną ale bez konieczności naciskania enter?

2 problem jest taki iż:

 //---------------------------------------------------------------------------
#include <conio.h>
#include <iostream>
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include <stdlib.h>
#include <stdio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
float a;

cout<<"Hello World"<<endl;



getch();


        return 0;
}
//---------------------------------------------------------------------------

Okno od razu się zamyka tyle razy korzystałem z getcha i to mi się nie zdazalo a teraz probowalem system pause,cin.get i nic!
mam dev c++ builder 6 co robic :(?

0

Daj sobie spokój z DEV-em , i zainstaluje np Code::blocks. Tam okienko konsoli zostaje "utrzymane" po zakończeniu programu, aż wciśniesz enter.

0

Gdzie nie spojrze to odpowiedzi które chwalą jakieś srodowisko :( na tym czyms sie ucze w sql i chce zdac klase mozesz mi powiedziec jak?

0

Ale co to za bzdury w ogóle?

dev c++ builder 6

NIE MA czegoś takiego. Patrząc na kod zgaduje że to jednak Borland C++ Builder (bo vcl.h). Napisz konkretnie co się dzieje i jaki jest problem bo kod który wstawiłeś nic nie robi przecież ...

0

Chce gdy nacisne np strzalke w lewo to pobrala mi sie zmienna od razu a potem w gotoxy zeby mi przemiescilo kursor

3

Możesz to osiągnąć magiczną funkcją getch(), której używasz do zatrzymania programu.
Przykład użycia:

#include <stdio.h>
#include <conio.h>

int main()
{
    int c;
    puts("Enter text. Include a dot ('.') in a sentence to exit:");
    do
    {
        c = getch();          // w visual studio musiałbyś napisać: _getch()
        putchar(c);
    } while (c != '.');
    return 0;
}

Ostrzegam cię jednak, że nie znajdziesz getch() we wszystkich kompilatorach i na pewno nie w linuksowym gcc. Ale z tego co wiem nie da się jej zastąpić używając std::cin, a ręczne stworzenie getch() wymaga trochę trudniejszego kodu, zewnętrznej biblioteki lub asemblerowej wstawki.
Jak chcesz sprawdzić czy użytkownik klikną strzałkę, czy inny klawisz, który nie jest znakiem, musisz rzutować zmienną na typ int i sprawdzić jej wartość.

c = getch();
if( (int) c == /* tutaj numer odpowiadający klawiszowi */ )

Numery klawiszy możesz sobie sam sprawdzić po prostu wyświetlając je w przykładowym programie na ekran, albo poszukaj ich w internecie.

0

Nowe pytanka mianowicie jak sprawić ze gdy liczba jest wpisana przez uzytkownika na ekranie (konsoli) na danej pozycji to jak ją zapisać jakby w pamięci ze moge ją znowu umiescic w tym samym miejscu

0

gotoxy() np z ncurse.

0

No weź coś wiecej napisz + patrzylem wczoraj pol dnia za gotoxy i probowalem zainstalowac biblioteke Allegro ale skonczylo sie na ty ze 3 razy reinstallowalem program...A teraz korzystam z SetCursorPosition prosze jakas rade albo najlepiej przyklad skladający się chociaż z 2-3 zdań

0
#pragma hdrstop
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#pragma argsused
int main(int argc, char* argv[])
  {
   int n=356;
   char buf[20];
   sprintf(buf,"%d",n);
   int p=strlen(buf);
   while(true)
     {
      gotoxy(40,10);
      cprintf("%s \b",buf);
      int x=getch();
      if(!x) x=getch()<<8;
      if(isdigit(x))
        {
         if(p<4)
           {
            buf[p]=x;
            buf[++p]=0;
           }
        }
      else if(x==8)
        {
         if(p) buf[--p]=0;
        }
      else if((x==13)||(x==27))
        {
         n=atoi(buf);
         break;
        }
      else
        {
         gotoxy(1,1);
         cprintf("key %d",x);
        }
     }
   printf("\nWprowadzono %d\n",n);
   getch();
   return 0;
  }
0

Czy to cały program? Nie za dużo tych bibliotek dołączyłeś :)

0

Zawszę można użyć nielubianego system("pause"); na końcu funkcji main.

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