Jazyk C - vstupno/výstupné operácie
Obsah
Učebné texty
Keď povieme Vstup , znamená to, že niektoré údaje vložíme do programu. Vstup môže byť zadaný vo forme súboru alebo z príkazového riadku. Programovanie C poskytuje sadu vstavaných funkcií na čítanie daného vstupu a jeho posielanie do programu podľa potreby.
Keď povieme Výstup , znamená to zobraziť niektoré údaje na obrazovke, tlačiarni alebo v akomkoľvek súbore. Programovanie v jazyku C poskytuje sadu vstavaných funkcií na výstup údajov na obrazovke počítača a ich ukladanie do textových alebo binárnych súborov.
Pre prácu zo vstupom a výstupom je potrebné vložiť knižnicu <stdio.h>[1] hlavičky definuje tri typy premenných, niekoľko makrá a rôzne funkcie pre vykonávanie vstupu a výstupu.
Štandardné súbory [2]
Štandardný súbor | Ukazovateľ súboru | Zariadenie |
---|---|---|
Štandardný vstup | stdin | klávesnica |
Štandardný výstup | stdout | obrazovka |
Štandardná chyba | stderr | Vaša obrazovka |
Funkcie putc, putchar
Deklarácia:
int getchar(void) // pre vstup znaku
int putchar(int) // pre výstup znaku
Funkcia getchar() dokáže načítať znak z klávesnice a vráti ho ako celé číslo. Táto funkcia dokáže načítať naraz iba jeden znak.
Funkcia putchar() dokáže vypísať jeden znak z klávesnice a vráti rovnaký znak. Pre načítanie alebo vypísanie viacerých znakov je potrebné použiť cyklus. Príklad:
#include <stdio.h>
main( ) {
int c;
printf( "Vstup:");
c = getchar( );
printf( "\nVýstup: ");
putchar(c);
}
Po skompilovaní a spustení vyššie uvedeného kódu čaká na vloženie textu. Keď zadáte text a stlačíte Enter, program pokračuje a načíta iba jeden znak a zobrazí ho nasledovne -
Vstup: Toto je test.
Výstup: T
Funkcie gets,puts[3]
Deklarácia:
char* gets(char[]);
int puts(char[])
Funkcia gets() umožňuje užívateľovi zadať niektoré znaky, za ktorými nasleduje kláves Enter. Všetky zadané znaky sa uložia do poľa znakov.Na koniec poľa sa pridá nulový znak aby sa vytvoril retazec. Gets() umožňuje užívateľovi zadať reťazce oddelené medzerami. Funkcia vracia string/retazec. Priklad:
#include<stdio.h>
void main () {
char s[30];
printf("Zadajte retazec: ");
gets(s);
printf("Zadaný retazec: %s",s);
}
Výstup:
Zadajte retazec: Toto je test.
Zadaný retazec: Toto je test.
Funkcia puts() je veľmi podobná funkcii printf(). Funkcia puts() sa používa na výpis reťazca na obrazovku, ktorý sa predtým čítal pomocou funkcie gets () alebo scanf (). Funkcia puts () vracia celočíselnú hodnotu predstavujúcu počet vypísaných znakov. Ak je úspešná, vráti sa nezáporná hodnota. Pri chybe funkcia vráti EOF. Príklad:
#include <stdio.h>
#include <string.h>
void main () {
znak char [50];
printf ( "Zadajte svoje meno:" );
gets (meno); // prečíta reťazec od používateľa
printf ( "Vaše meno je:" );
puts (názov); // zobrazuje reťazec
}
Výstup:
Zadajte svoje meno: Ferko Mrkvička
Vaše meno je: Ferko Mrkvička
Funkcie printf, scanf
Funkcie printf () a scanf () sa používajú na formátovaný vstup a výstup v jazyku C. Obe funkcie sú vstavané knižničné funkcie definované v stdio.h (súbor hlavičky).
Deklarácia:
printf ( "formátovací reťazec" , premenná);
scanf ( "formátovací reťazec" , premenná);
Formátovací reťazec môže byť %d (celé číslo), %c (znak), %s (reťazec), %f (float) atď.
Premenná je miesto odkiaľ alebo kam sa čísla, znaky, reťazce zapisujú alebo odkiaľ sa čítajú. Funkcia scanf() načítava znaky z klávesnice ako formátovaný vstup a ukladá ich do premennej či už ako reťazec, číslo, znak. Funkcia printf() vypíše na obrazovku formátovaný výstup premennej či už ako reťazec, číslo, znak, atď.
Príklad:
#include <stdio.h>
int main( ) {
char str[100];
int i;
printf( "Zadajte text:");
scanf("%s %d", str, &i);
printf( "\nZadali ste: %s %d ", str, i);
return 0;
}
Výstup:
Zadajte text: sedem 7
Zadali ste: sedem 7