Skočiť na obsah


Programovanie v jazyku C a C#

Návody pre začiatočníkov a pokročilých



Fórum: Škôlka jazyka C
- - - - -
Fotografia

Obrazovka - vstup a výstup


getchar(); putchar();
#include <stdio.h>
#define KONIEC '0'  /* koniec zadavania */
main()   /* konvertovanie vstupu na velke pismena */
{
  int c;
 
  while ((c = getchar()) != KONIEC)
    putchar(islower(c) ? toupper(c) : c);
}
Výstup:
d
D
f
F
h
H
+
+
5
5
q
Q
#include <stdio.h>
main()   /* vypis znakov na zaklade vypoctu */
{
  int i, j;
 
  for (i = 1; i < 8; i ++) {
    for (j = 1; j < 9; j++)
      i % 2 == 0 ? (putchar((j % 2 == 0) ? '*' : ' ')) : (putchar((j % 2 == 0) ? ' ' : '*'));
      putchar('\n');
  }
  putchar('\n');
}
Výstup:
* * * * 
 * * * *
* * * * 
 * * * *
* * * * 
 * * * *
* * * * 
scanf();
#include <stdio.h>
main()
{
  int i;
  float x;
  char name[50];
 
  scanf("%d %f %s", &i, &x, name); /* vstup bude: 25  54.32E-1  Thompson */
  printf("%d %f %s\n", i, x, name);
}

Výstup:
25 54.32E-1  Thompson
25 5.432000 Thompson
#include <stdio.h>
main()
{
  int i;
  float x;
  char name[50];
 
  scanf("%2d %f %*d %2s", &i, &x, name); /* vstup bude: 56789 0123 45a72 */
  printf("%d %f %s\n", i, x, name);
}
Výstup:
56789 0123 45a72
56 789.000000 45
#include <stdio.h>
#define KONIEC '0'  /* koniec zadavania */
main()   /* jednoduchy kalkulator */
{
  double sum, v;
 
  sum = 0;
  while (scanf("%lf", &v) != KONIEC)
    printf("\t%.2f\n", sum += v);
}
Výstup:
5
5.00
5
10.00
15
25.00
-20
5.00

printf();
#include <stdio.h>
main()
{
/* jeden riadok (použitie prechodu na nový riadok \n) */
  printf("Absolutny zaklad.\n");
/* viac riadkov (menej prehľadné) */
  printf("Prvy riadok,\ndruhy riadok,\ntreti riadok,\nn-ty riadok.\n");
/* viac riadkov (prehľadné) */
  printf("Prvy riadok,\n"
         "druhy riadok,\n"
         "treti riadok,\n"
         "n-ty riadok.\n");
/* použitie tabulátora (horizontálny \t, vertikálny \v */
  printf("1.\triadok\trieši...\n"
         "2.\triadok\trieši...\v"
         "N.\triadok\trieši...\n");
}

Výstup:
 
[libco@libcosenior testy]$ ./a.out
Absolutny zaklad.
Prvy riadok,
druhy riadok,
treti riadok,
n-ty riadok.
Prvy riadok,
druhy riadok,
treti riadok,
n-ty riadok.
1. riadok  rieši...
2. riadok  rieši...
                       N. riadok  rieši...
[libco@libcosenior testy]$ 

printf - riadiace reťazce používané za znakom "%"
#include <stdio.h>
main()
{
  char c;
  signed int d;
  signed long ld;
  unsigned int u;
  unsigned long lu;
  float f;
  long double Lf;
  char *s;
 
  c = 'A';              /* znak (na jeden znak je lepšie používať putchar) */
  d = -458754698;       /* desiatkové číslo typu signed int */
  ld = -956789125;      /* desiatkové číslo typu signed long */
  u = 456789123;        /* desiatkové číslo typu unsigned int */
  lu = 456789123;       /* desiatkové číslo typu unsigned long */
  f = 45.521655;        /* float (pre printf() tiež double) */
  Lf = 45.789456123456; /* long double (Pozor, L musí byť veľké) */
/*  x - hexadecimálne číslo malými písmenami napr.: 1a2c  */
/*  X - hexadecimálne číslo veľkými písmenami napr.: 1A2C */
/*  o - osmičkové číslo */
  s = "Mala hŕba pýta viac 123456879.";  /* reťazec */
/* použitie */
  printf("znak\t\t\t%c\n"
         "signed int\t\t%d\n"
         "signed long\t\t%ld\n"
         "unsigned int\t\t%u\n"
         "unsigned long\t\t%lu\n"
         "float\t\t\t%f\n"   /* zaokrúhlené na šesť desatinných miest */
         "float\t\t\t%.2f\n" /* zaokrúhlené na dve desatinné miesta */         
         "float\t\t\t%0.f\n"  /* zaokrúhlené na žiadne desatinné miesta */
         "long double\t\t%Lf\n"
         "hexadecimalne malymi\t%x\n"
         "hexadecimalne velkymi\t%X\n"
         "osmickove\t\t%o\n"         
         "retazec\t\t\t%s\n",
         c, d, ld, u, lu, f, f, f, Lf, d, d, d, s);
}

Výstup:
[libco@libcosenior testy]$ ./a.out
znak A
signed int -458754698
signed long -956789125
unsigned int 456789123
unsigned long 456789123
float 45.521656
float 45.52
float 46
long double 45.789456
hexadecimalne malymi e4a7f576
hexadecimalne velkymi E4A7F576
osmickove 34451772566
retazec Mala hŕba pýta viac 123456879.
[libco@libcosenior testy]$ 

printf - true, false, výpočty
#include <stdio.h>
main()
{
  int i, j;
 
  i = 7;
  j = 8;
/* TRUE == 1 / FALSE == 0 */
  printf("%d\n", i + j == 15); /* TRUE */
  printf("%d\n", i + j == 16); /* FALSE */
}

#include <stdio.h>
main()
{
  int i, j;
 
  i = 7;
  j = 8;
/* vypočty */
  printf("%d\n", i + j);
  printf("%d\n", i - j > 0 ? i + j : 0);
  printf("%s\n", (i + j > 0) && (i + j < 100) ? "spravne" : "nespravne");
}
Výstup:
15
0
spravne

printf - zaujímavé možnosti

Špecifikácia konverzie (napr.: %d) vytvorí pole potrebnej veľkosti a môže byť spresnená údajmi medzi znakom '%' a 'd'.
Príklady:
(dvojbotky :%d: pred a za sú uvedené aby bolo vidno šírku poľa)
#include <stdio.h>
main()
{
  printf(":%d:\n", 5);
  printf(":%8d:\n", 5);
  printf(":%-8d:\n", 5);
  printf(":%08d:\n", 5);
  printf(":%.8d:\n", 5);
}
Výstup:
:5:
:       5:
:5       :
:00000005:
:00000005:
Pri reťazcoch sa dá napr. ukrajovať z nich.
#include <stdio.h>
main()
{
  char *s;
 
  s = "hello, world"; /* 12 znakov */
  printf(":%10s:\n", s);
  printf(":%-10s:\n", s);
  printf(":%20s:\n", s);
  printf(":%020s:\n", s);
  printf(":%.20s:\n", s);
  printf(":%-20s:\n", s);
  printf(":%20.10s:\n", s);
  printf(":%-20.10s:\n", s);
  printf(":%.10s:\n", s);
}
Výstup:
:hello, world:
:hello, world:
:        hello, world:
:        hello, world:
:hello, world:
:hello, world        :
:          hello, wor:
:hello, wor          :
:hello, wor:
  • 0

Popis: printf(); scanf(); getchar(); putchar();
Poznámky:
Odkazy:


0 Komentárov


Najlepšie lekcie


Najnovšie pridané lekcie


Najnovšie komentáre


Najviac komentované lekcie


Najviac zobrazené lekcie


Náhodné lekcie


Na tejto stránke bolo užívateľ(ov) za posledných 30 minút

členov, návštevníkov