Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaIda Gálné Megváltozta több, mint 6 éve
1
Könyvtári függvények I. Input / output kezelés függvényei
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./0. Könyvtári függvények I. Input / output kezelés függvényei Képernyőkezelés karakteres üzemmódban Adatkonverziós függvények
2
Input / output kezelés függvényei
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./1. Input / output kezelés függvényei A C nyelvben az input / output perifériák, mint pl. a billentyűzet, karakteres képernyő, karakteres nyomtató, egyéb párhuzamos és soros kapcsolódási felületet használó egységek (szalagegység, lyukszalagolvasó / lyukasztó, rajzgép, stb.) kezelése a szabványos szinten nem tér el a fájlok karakterfolyamos (stream) elvű kezelésétől, azaz az adatátvitel a számítógép és a periféria között fájlok írásával és olvasásával valósul meg. DOS operációs rendszeren üzemeltetve, a C program indítása pillanatában definiál öt szabványos fájlnevet és megnyitja a hozzájuk rendelt "fájlokat", azaz perifériákat, amelyeket azonnal használhatunk a megszokott karakterfolyam-kezelő függvényekkel.
3
Ezek a standard logikai fájlnevek a következők:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./2. Ezek a standard logikai fájlnevek a következők: Név Periféria Irány stdin billentyűzet (átirányítható) input stdout képernyő (átirányítható) output stderr képernyő (hibaüzenetek) output stdaux 1. soros kommun. csat. (COM1) i / o stdprn 1. nyomtató port (PRN, LPT1) output
4
<karakterváltozó> = getchar() putchar( <karakterváltozó> )
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./3. A szabványos fájlnevek szöveges állományokat jelölnek. Ezen szabványos input és output adatfolyamok kezelésére a már korábban megismert printf(), scanf() függvényeken, valamint a fájlok folyamszintű kezelésének függvényein túl ismerjünk meg két pár, a billentyűzet és a képernyő kezelésére szánt lehetőséget: A getchar( ) és a putchar( ) makrók egyetlen karakternek a billentyűzetről való bekérésére, ill. a képernyőre való kiírására alkalmasak. Formájuk: <karakterváltozó> = getchar() putchar( <karakterváltozó> )
5
#include <stdio.h> // Karakterek másolása a
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./4. A getchar(), szemben a getch() függvénnyel, pufferelt inputot végez, sorvégként kezeli az Enter karaktert és a Ctrl+Z, Enter billentyűkombinációra -1 == EOF értéket ad, ilymódon alkalmas szövegfájloknak a billentyűzetről történő bevitelére. Pl.: #include <stdio.h> // Karakterek másolása a main() // billentyűzetről a képernyőre { int bill; // Ctrl+Z, Enter nyomásáig while ( (bill = getchar() ) != EOF ) // EOF == -1 putchar( bill ); }
6
#include <conio.h>
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./5. Az előző ciklus leállításához a getch() függvény alkalmazása esetén az EOF karaktert, azaz a '\x1A' karaktert kell megadnunk, és a bill változót elegendő char típusúra definiálni: #include <conio.h> #include <stdio.h> // Karakterek másolása a main() // billentyűzetről a képernyőre { char bill; // Ctrl+Z nyomásáig while ( ( bill = getch() ) != '\x1A' ) putchar( bill ); }
7
gets(<karaktervektor_név>) puts(<szöveg>)
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./6. Sztringek beolvasása a szabványos inputról (billentyűzetről) a gets() függvénnyel, kiíratása a szabványos outputra (képernyőre) a puts() függvénnyel végezhető. Bár a kiiratásra alkalmas a printf() függvény is, szóközökkel tagolt sor beolvasására a scanf() függvény nem alkalmas. Eltérés még, hogy a gets() a sort lezáró Enter hatására keletkező '\n' karaktert '\0' karakterré, a puts() pedig vissza, a '\0' karaktert '\n' karakterré alakítja, azaz a kiírás végén a következő sor elejére lép. Formájuk: gets(<karaktervektor_név>) puts(<szöveg>)
8
#include <stdio.h> main() {
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./7. Példa: #include <stdio.h> main() { char svekt[128]; // +1 hely kell a '\0' karakternek puts("Legfeljebb 127 karakteres szöveg \ beadása, lezárás Enter-rel:"); gets(svekt); puts(svekt); // a szöveget azonosíthatja a vektornév is }
9
Képernyőkezelés karakteres üzemmódban
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./8. Képernyőkezelés karakteres üzemmódban A Borland C támogatja a képernyő karakteres és grafikus üzemmódban való használatát egyaránt. A grafikus könyvtár függvényei gyakorlatilag megegyeznek a Borland Pascal grafikus alprogramjaival. A továbbiakban csak a képernyő karakteres üzemmódban történő használatával foglalkozunk. Képernyő- és ablakkoordináták: x2,y2 x1,y1 y x oszlop 25 80 sor 1
10
textbackground(<HSZIN>)
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./9. A <conio.h> headerfájl által deklarált képernyőkezelő függvények többsége csak a Borland C nyelvben használható. A képernyőn ablakot hozhatunk létre a képernyő-koordinátarend-szerben mérendő x1, y1 és x2, y2 sarokkoordináták megadásával: window(x1, y1, x2, y2 ); Az ablak tartalmát a textbackground(<HSZIN>) függvénnyel megadott háttérszínűre törölhetjük a clrscr(); függvénnyel. A <HSZIN> konstans értéke a intervallumból vehető. A kiírt karakterek színét a textcolor(<KSZIN>); függvénnyel adhatjuk meg, ahol <KSZIN> értéke a 0-15 közül választandó.
11
A kurzort az aktuális ablak koordinátarendszerében a gotoxy( x, y);
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./10. A kurzort az aktuális ablak koordinátarendszerében a gotoxy( x, y); függvénnyel pozicionálhatjuk, az x = wherex(); y = wherey(); függvényekkel lekérdezhetjük. Teljes képernyőtől kisebb ablakba adatokat a printf() függvénnyel azonosan paraméterezendő cprintf(<formátumsztring>,<értékek_listája>); függvénnyel írathatunk ki. Sztring kiírásához használhatjuk a cputs(<szöveg>); függvényt is.
12
Adatkonverziós függvények
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./11. Adatkonverziós függvények Különböző típusú számok és szöveges alak közötti átalakításra alkalmazható függvénypáros az sprintf() és az sscanf(), melyek alakja: sprintf(<karaktervektor_név>,<formátumsztring>, <adatok_listája>) sscanf(<számok_szövegalakban>, <formátumsztring>, <változók_címeinek_listája>)
13
#include <stdio.h> main() { float szam = -123.456 ;
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./12. Pl.: #include <stdio.h> main() { float szam = ; char szovegalak[ 8 ] = "98.765"; char string[ 28 ]; sprintf(string, "%d %f", 12, szam ); sscanf(szovegalak, "%f", &szam ); printf( "szám=%f\n", szam ); // puts(string ); // }
14
Az angol kisbetűk nagybetűvé alakítására alkalmas a
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./13. Az angol kisbetűk nagybetűvé alakítására alkalmas a toupper(<kisbetű>) függvény. Pl.: nagyp = toupper( 'p' ); Szövegalakban adott számértéket konvertálnak int, long int, ill. double típusú numerikus alakúvá a következő függvények: atoi( <szövegalak> ) atol( <szövegalak> ) atof( <szövegalak> ) Pl.: egesz = atoi ("-23"); hosszuegesz = atol("123456"); char s[12] = " "; duplapontos = atof(s);
15
A fordított, numerikus alakból szövegalakra konvertálás függvényei az
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 29./14. A fordított, numerikus alakból szövegalakra konvertálás függvényei az itoa(<egész>,<szövegalak>,<alapszám>); ltoa(<hosszúegész>,<szövegalak>,<alapszám>); gcvt( <duplapontos>, <digitek>,<szövegalak>); Pl.: itoa(egesz, s1, 10); ltoa(987456, s2, 10); gcvt( , 8, s3);
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.