Diskuze: Test na vstupné znaky
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

					Člen				
			
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.


Spíš bude problém ve vstupu. Tenhle kus kódu nám není moc platný.
viem, mam tam while(1). Ide mi len o to, ci existuje sposob ako vyradit zadavanie znakov z klavesnice. Chcem, aby bralo len cisla
Můžeš na vstupu testovat, jestli jsi opravdu zadal číslo, a pokud ne, tak programu nastavíš nějaké adekvátní chování.
#include <stdio.h>
 int main()
 {
    int v;
    if (scanf("%d", &v)) {
    switch (v)
        {
                case 1: v = 0;
                        break;
                case 2: v = 1;
                        break;
                case 3: v = 2;
                        break;
                case 4: v = 3;
                        break;
                case 5: v = 4;
                        break;
        }
    }
    else {
        printf("Spustam nekonecny cyklus!\n");
        for(;;)
           ;
    }
    return 0;
}Proces ukončíš dvojklikom ctrl+c.
Takto to bude lepšie:
#include <stdio.h>
 int main(void)
 {
    int v;
    do {
    switch (v)
        {
                case 1: v = 0;
                        break;
                case 2: v = 1;
                        break;
                case 3: v = 2;
                        break;
                case 4: v = 3;
                        break;
                case 5: v = 4;
                        break;
                default:
                        continue;
        }
    } while (scanf("%d", &v));
    printf("Spustam nekonecny cyklus!\n");
    while (1)
        ;
    return 0;
}Tohle bych nedělal. Ten cyklus se provede minimálně jednou úplně zbytečně. Tuším, že tu nekonečnou smyčku tam mít nechtěl.
int main()
{
  int v;
  short int running = 1;
  while(running)  //dokud je running 1, cyklus probiha
  {
    if(scanf("%d",&v))  //otestuje zda je spravny vstup
    {
      //program neco udela s daty
    }
    else
    {
      printf("chyba\n");
      getchar();  //nutne, jinak znak zustane na vstupu a program se zacykli
    }
  } //pro ukonceni cyklu musi byt hodnota promenne running nastavena na 0
}Zobrazeno 8 zpráv z 8.
 
				
