Funkcijos printf( ) ir scanf( )

(pagal A. Kynienės knygą)

 

Programos pavyzdys:

 

/* dialogas*/

#define DENSITY 1200 /*žmogaus kūno tankis*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

main ( )

{

   float weight, volume;

   int size, letters;

   char name[40];

   clrscr();

   printf("Labas! Koks Jūsų vardas? \n");

   scanf("%s", name);

   printf("%s, kokia Jūsų masė?\n", name);

   scanf("%f", &weight);

   size = sizeof( name);

   letters = strlen(name);

   volume = weight/DENSITY;

   printf("Nuostabu, %s, Jūsų tūris %2.2f kubiniai metrai.\n", name, volume);

   printf("Be to, Jūsų vardas sudarytas iš %d raidžių, \n", letters);

   printf("ir jis kompiuterio atmintyje užima %d baitų.\n", size);

   getch( );

   return 0;

}

 

Programos veikimo rezultatas:

Labas! Koks Jūsų vardas?

Viktorija

Viktorija, kokia Jūsų masė?

64

Nuostabu, Viktorija, Jūsų tūris 0.053 kūbiniai metrai.

Be to, Jūsų vardas sudarytas iš 9 raidžių,

Ir jo patalpinimas kompiuterio atmintyje užima 40 baitų.

 

Funkcijos scanf( ) ir printf( ) – įvedimo ir išvedimo funkcijos. scanf( ) ir printf( ) funkcijų viduje įvesta ir norima išvesti informacija rašoma tarp kabučių, kurios nurodo eilutės pradžią ir pabaigą.

Įvedant ir išvedant simbolinę eilutę buvo pa naudota išvedimo specifikacija %s.

Simbolis %s nurodo funkcijai printf( ) spausdinti simbolinę eilutę. Funkcija scanf( ) skaito simbolius iš klaviatūros, kol sutinka tarpo, tabuliacijos klavišo ir įvedimo klavišo simbolio. Duomenų įvedimui arba nuskaitymui C kalboje yra ir daugiau funkcijų, pvz.: gets( ), getchar( ) ir kt.

Funkcijos – įvedimo ir išvedimo funkcijos. Norint, kad scanf( ) ir printf( ) išvestų arba įvestų kintamąjį, reikia nurodytį kintamųjų formatą. Žemiau pateikti išvedimo/įvedimo formatai ir išvedamos/įvedamos informacijos tipas:

Formatas       Išvedamos/įvedamos informacijos tipas

%d                  dešimtainis sveikas skaičius

%c                   vienas simbolis

%s                   simbolių eilutė

%e                  slankaus kablelio skaičius, išvedimas eksponentiniu formatu

%f                   slankaus kablelio skaičius, dešimtaininis išvedimas

%g                  naudojama vietoj f ir e, jeigu jis yra trumpesnis

%u                  dešimtainis sveikas skaičius be ženklo

%o                  aštuntainės sistemos skaičius be ženklo

%x                   šešioliktainės sistemos skaičius be ženklo

 

Galima tarp % ir simbolio nurodyti skaičius:

%4d spausdinamam skaičiui skirti 4 simboliai, pildoma iš dešinės į kairę

_ _ _ 5

%4.5f - skaičius po tašku nurodo išvedimo tikslumą, t.y. kiek skaičių po kableliu išvesti į ekraną

%ld – atitinka long duomenų tipą.

%-10d – išvedimui skirta 10 simbolių, spausdinama bus iš kairės į dešinę.

Įrašant duomenis iš klaviatūros, kaip matėme scanf( ) funkcijoje nurodant kintamąjį, kuriam bus priskirta nuskaityta vertė, naudojamas simbolis &. Šis simbolis reiškia rodyklę į kintamąjį arba kitaip, kintamojo adresą. Jei kintamasis apibrėžtas *p, tai rodyklė į jį bus p; jei kintamasis apibrėžtas p, tai rodyklė į jį bus &p.