{"id":5495,"date":"2023-04-24T00:00:00","date_gmt":"2023-04-24T00:00:00","guid":{"rendered":"https:\/\/megnyitasa.com\/tudas\/a-fajlbevitel-alapjai-a-c-programozasban\/"},"modified":"2023-04-24T00:00:00","modified_gmt":"2023-04-24T00:00:00","slug":"a-fajlbevitel-alapjai-a-c-programozasban","status":"publish","type":"post","link":"https:\/\/megnyitasa.com\/tudas\/a-fajlbevitel-alapjai-a-c-programozasban\/","title":{"rendered":"A f\u00e1jlbevitel alapjai a C programoz\u00e1sban"},"content":{"rendered":"<div class=\"articlecontent\">\n<div class=\"newlinediv\"><\/div>\n<p> A f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa a C programoz\u00e1s egyik alapvet\u0151 feladata. Ez mag\u00e1ban foglalja egy f\u00e1jl megnyit\u00e1s\u00e1t, a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1s\u00e1t, majd a f\u00e1jl bez\u00e1r\u00e1s\u00e1t. Ez a cikk a f\u00e1jlbevitel alapjait vizsg\u00e1lja a C programoz\u00e1sban, k\u00fcl\u00f6n\u00f6s tekintettel a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1s\u00e1ra. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> A f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa sor\u00e1n az els\u0151 l\u00e9p\u00e9s a f\u00e1jl megnyit\u00e1sa. Ehhez az fopen() f\u00fcggv\u00e9nyt haszn\u00e1ljuk, amely k\u00e9t argumentumot fogad el: a megnyitand\u00f3 f\u00e1jl nev\u00e9t \u00e9s a megnyit\u00e1si m\u00f3dot. A m\u00f3d argumentum lehet &#8222;r&#8221; az olvas\u00e1shoz, &#8222;w&#8221; az \u00edr\u00e1shoz, &#8222;a&#8221; a csatol\u00e1shoz, &#8222;rb&#8221; a bin\u00e1ris m\u00f3d\u00fa olvas\u00e1shoz, &#8222;wb&#8221; a bin\u00e1ris m\u00f3d\u00fa \u00edr\u00e1shoz \u00e9s &#8222;ab&#8221; a bin\u00e1ris m\u00f3d\u00fa csatol\u00e1shoz. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> A f\u00e1jl megnyit\u00e1sa ut\u00e1n a k\u00f6vetkez\u0151 l\u00e9p\u00e9s a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa. Ez az fgets() f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik, amely h\u00e1rom argumentumot vesz fel: az olvasott sor t\u00e1rol\u00e1s\u00e1ra szolg\u00e1l\u00f3 puffert, az olvasand\u00f3 karakterek maxim\u00e1lis sz\u00e1m\u00e1t \u00e9s a f\u00e1jlmutat\u00f3t. A f\u00e1jlmutat\u00f3t az fopen() f\u00fcggv\u00e9nyb\u0151l kapjuk, \u00e9s a f\u00e1jl aktu\u00e1lis poz\u00edci\u00f3j\u00e1ra mutat. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> A f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa ut\u00e1n fontos a hibaellen\u0151rz\u00e9s. Ez a ferror() f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik, amely nem nulla \u00e9rt\u00e9ket ad vissza, ha hiba t\u00f6rt\u00e9nt a f\u00e1jl olvas\u00e1sa k\u00f6zben. Ha hiba t\u00f6rt\u00e9nt, fontos a f\u00e1jl bez\u00e1r\u00e1sa \u00e9s a hiba megfelel\u0151 kezel\u00e9se. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> V\u00e9g\u00fcl a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa ut\u00e1n fontos a f\u00e1jl bez\u00e1r\u00e1sa. Ehhez az fclose() f\u00fcggv\u00e9nyt haszn\u00e1ljuk, amely egyetlen argumentumot fogad el: a f\u00e1jlmutat\u00f3t. A f\u00e1jl bez\u00e1r\u00e1sa az\u00e9rt fontos, hogy a f\u00e1jlban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok elment\u00e9sre ker\u00fcljenek, \u00e9s hogy az oper\u00e1ci\u00f3s rendszer \u00e1ltal a f\u00e1jlhoz rendelt er\u0151forr\u00e1sok felszabaduljanak. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00d6sszefoglalva, egy f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa alapvet\u0151 feladat a C programoz\u00e1sban. Mag\u00e1ban foglalja a f\u00e1jl megnyit\u00e1s\u00e1t, az els\u0151 sor beolvas\u00e1s\u00e1t az fgets() f\u00fcggv\u00e9nnyel, a hibaellen\u0151rz\u00e9st a ferror() f\u00fcggv\u00e9nnyel, \u00e9s a f\u00e1jl bez\u00e1r\u00e1s\u00e1t az fclose() f\u00fcggv\u00e9nnyel. Ezeket az alapvet\u0151 l\u00e9p\u00e9seket k\u00f6vetve sikeresen beolvashatja egy f\u00e1jl els\u0151 sor\u00e1t a C programoz\u00e1sban.<\/p><\/div>\n<div class=\"questions\">\n<div class=\"questionstitle\">FAQ<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> Hogyan olvassunk be egy sort egy f\u00e1jlb\u00f3l C nyelven?<\/div>\n<p> Egy sor beolvas\u00e1sa egy f\u00e1jlb\u00f3l C nyelven n\u00e9h\u00e1ny l\u00e9p\u00e9sb\u0151l \u00e1ll. Az al\u00e1bbiakban \u00e1ttekintj\u00fck a folyamatot: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 1. Nyissa meg a f\u00e1jlt: Miel\u0151tt olvashatna egy f\u00e1jlb\u00f3l, meg kell nyitnia azt. Egy f\u00e1jl megnyit\u00e1s\u00e1hoz C-ben az fopen() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk. Ez a f\u00fcggv\u00e9ny k\u00e9t argumentumot fogad el: a f\u00e1jl nev\u00e9t \u00e9s azt az \u00fczemm\u00f3dot, amelyben meg akarjuk nyitni (pl. &#8222;r&#8221; az olvas\u00e1si m\u00f3dhoz). <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 2. Olvassa be a sort: Miut\u00e1n megnyitotta a f\u00e1jlt, az fgets() f\u00fcggv\u00e9nnyel beolvashat egy sort a f\u00e1jlb\u00f3l. Ez a f\u00fcggv\u00e9ny h\u00e1rom argumentumot fogad el: egy karaktert\u00f6mb\u00f6t a sor t\u00e1rol\u00e1s\u00e1ra, az olvasand\u00f3 karakterek maxim\u00e1lis sz\u00e1m\u00e1t \u00e9s a f\u00e1jlmutat\u00f3t. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 3. A sor feldolgoz\u00e1sa: Miut\u00e1n beolvasta a sort a f\u00e1jlb\u00f3l, sz\u00fcks\u00e9g szerint feldolgozhatja azt. P\u00e9ld\u00e1ul ki\u00edrhatja a konzolra, feloszthatja egyes szavakra, vagy \u00e1talak\u00edthatja m\u00e1s adatt\u00edpuss\u00e1. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 4. Ism\u00e9tl\u00e9s: Ha tov\u00e1bbi sorokat szeretne beolvasni a f\u00e1jlb\u00f3l, megism\u00e9telheti a 2-3. l\u00e9p\u00e9st, am\u00edg el nem \u00e9ri a f\u00e1jl v\u00e9g\u00e9t. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 5. Z\u00e1rja be a f\u00e1jlt: Ha befejezte a f\u00e1jlb\u00f3l val\u00f3 olvas\u00e1st, z\u00e1rja be a f\u00e1jlt az fclose() f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel. Ez biztos\u00edtja, hogy a f\u00e1jlhoz kapcsol\u00f3d\u00f3 er\u0151forr\u00e1sok felszabaduljanak. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00cdme egy p\u00e9ldak\u00f3dr\u00e9szlet, amely bemutatja, hogyan olvashatunk be egy sort egy f\u00e1jlb\u00f3l C nyelven: <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> #include  <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> int main() { <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FILE *file = fopen(&#8222;file.txt&#8221;, &#8222;r&#8221;); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> char line[100]; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> while (fgets(line, sizeof(line), file)) { <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> printf(&#8222;%s&#8221;, line); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> } } <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> fclose(file); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> return 0; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> } <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> Ebben a p\u00e9ld\u00e1ban a &#8222;file.txt&#8221; f\u00e1jlt nyitjuk meg olvas\u00e1si m\u00f3dban az fopen() seg\u00edts\u00e9g\u00e9vel. Ezut\u00e1n egy while ciklus seg\u00edts\u00e9g\u00e9vel minden sort beolvasunk a f\u00e1jlb\u00f3l az fgets() seg\u00edts\u00e9g\u00e9vel, majd a printf() seg\u00edts\u00e9g\u00e9vel ki\u00edrjuk a konzolra. V\u00e9g\u00fcl bez\u00e1rjuk a f\u00e1jlt az fclose() seg\u00edts\u00e9g\u00e9vel. <\/p>\n<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> Mi az els\u0151 sor a C programoz\u00e1sban?<\/div>\n<p> A C programoz\u00e1sban az els\u0151 sor \u00e1ltal\u00e1ban egy el\u0151feldolgoz\u00f3i utas\u00edt\u00e1s, amely egy fejl\u00e9cf\u00e1jlt tartalmaz. Ez az utas\u00edt\u00e1s t\u00e1j\u00e9koztatja a ford\u00edt\u00f3t arr\u00f3l, hogy milyen k\u00f6nyvt\u00e1ri f\u00fcggv\u00e9nyeket fog haszn\u00e1lni a programban. A C programoz\u00e1sban leggyakrabban haszn\u00e1lt fejl\u00e9cf\u00e1jl az &#8222;stdio.h&#8221;, amely bemeneti \u00e9s kimeneti f\u00fcggv\u00e9nyeket biztos\u00edt. A C program els\u0151 sora \u00e1ltal\u00e1ban \u00edgy n\u00e9z ki: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> #include  <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> A fejl\u00e9cf\u00e1jl be\u00e9p\u00edt\u00e9se ut\u00e1n defini\u00e1ljuk a main f\u00fcggv\u00e9nyt. A main f\u00fcggv\u00e9ny a program kezd\u0151pontja, \u00e9s minden C programban sz\u00fcks\u00e9ges. Tipikusan a k\u00f6vetkez\u0151k\u00e9ppen defini\u00e1ljuk: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> int main(){ <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> \/\/a k\u00f3d ide ker\u00fcl <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> } } <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ez egy C program alapvet\u0151 fel\u00e9p\u00edt\u00e9se, de a program saj\u00e1tos k\u00f6vetelm\u00e9nyeit\u0151l f\u00fcgg\u0151en v\u00e1ltozhat. <\/p>\n<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> Hogyan olvassunk \u00e9rt\u00e9keket f\u00e1jlb\u00f3l C-ben?<\/div>\n<p> Ahhoz, hogy C nyelven \u00e9rt\u00e9keket olvassunk egy f\u00e1jlb\u00f3l, el\u0151sz\u00f6r meg kell nyitnunk a f\u00e1jlt az fopen() f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel. Ez a f\u00fcggv\u00e9ny k\u00e9t argumentumot fogad el &#8211; a megnyitand\u00f3 f\u00e1jl nev\u00e9t \u00e9s a megnyit\u00e1si m\u00f3dot (pl. &#8222;r&#8221; az olvas\u00e1si m\u00f3dhoz, &#8222;w&#8221; az \u00edr\u00e1si m\u00f3dhoz stb.). A f\u00e1jl megnyit\u00e1sa ut\u00e1n olyan f\u00fcggv\u00e9nyeket haszn\u00e1lhatunk, mint az fscanf() vagy az fgets(), hogy kiolvassuk az \u00e9rt\u00e9keket a f\u00e1jlb\u00f3l. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ha p\u00e9ld\u00e1ul van egy &#8222;data.txt&#8221; nev\u0171 f\u00e1jlunk, amely n\u00e9h\u00e1ny \u00e9rt\u00e9ket tartalmaz, a k\u00f6vetkez\u0151 k\u00f3ddal nyithatjuk meg: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;`c <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FILE *fp; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> fp = fopen(&#8222;data.txt&#8221;, &#8222;r&#8221;); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ez a k\u00f3d megnyitja a &#8222;data.txt&#8221; f\u00e1jlt olvas\u00e1si m\u00f3dban, \u00e9s hozz\u00e1rendel egy f\u00e1jlmutat\u00f3t. Ezut\u00e1n az fscanf() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk az \u00e9rt\u00e9kek beolvas\u00e1s\u00e1ra a f\u00e1jlb\u00f3l. Ha p\u00e9ld\u00e1ul a f\u00e1jl sz\u00f3k\u00f6z\u00f6kkel elv\u00e1lasztott eg\u00e9sz sz\u00e1m\u00e9rt\u00e9keket tartalmaz, a k\u00f6vetkez\u0151 k\u00f3ddal beolvashatja \u0151ket egy t\u00f6mbbe: <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;`c <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> int values[10]; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> int i = 0; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> while (fscanf(fp, &#8222;%d&#8221;, &amp;values[i]) != EOF) { <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> i++; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> } } <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ez a k\u00f3d eg\u00e9sz \u00e9rt\u00e9keket olvas be a f\u00e1jlb\u00f3l az fscanf() f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel, am\u00edg el nem \u00e9ri a f\u00e1jl v\u00e9g\u00e9t (EOF). Az \u00e9rt\u00e9keket egy &#8222;values&#8221; nev\u0171 t\u00f6mbben t\u00e1rolja. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> V\u00e9g\u00fcl, amikor befejezt\u00fck a f\u00e1jl beolvas\u00e1s\u00e1t, az fclose() f\u00fcggv\u00e9nnyel bez\u00e1rjuk azt: <\/p>\n<div class=\"newlinediv\"><\/div>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;`c <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> fclose(fp); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8222;&#8222; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Ez biztos\u00edtja, hogy a f\u00e1jl \u00e1ltal haszn\u00e1lt er\u0151forr\u00e1sok felszabaduljanak, \u00e9s a f\u00e1jl megfelel\u0151en lez\u00e1r\u00e1sra ker\u00fclj\u00f6n.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa a C programoz\u00e1s egyik alapvet\u0151 feladata. Ez mag\u00e1ban foglalja egy f\u00e1jl megnyit\u00e1s\u00e1t, a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1s\u00e1t, majd a f\u00e1jl bez\u00e1r\u00e1s\u00e1t. Ez a cikk a f\u00e1jlbevitel alapjait vizsg\u00e1lja a C programoz\u00e1sban, k\u00fcl\u00f6n\u00f6s tekintettel a f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1s\u00e1ra. A f\u00e1jl els\u0151 sor\u00e1nak beolvas\u00e1sa sor\u00e1n az els\u0151 l\u00e9p\u00e9s a f\u00e1jl megnyit\u00e1sa. &#8230; <a title=\"A f\u00e1jlbevitel alapjai a C programoz\u00e1sban\" class=\"read-more\" href=\"https:\/\/megnyitasa.com\/tudas\/a-fajlbevitel-alapjai-a-c-programozasban\/\" aria-label=\"Read more about A f\u00e1jlbevitel alapjai a C programoz\u00e1sban\">Read more<\/a><\/p>\n","protected":false},"author":1186,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-5495","post","type-post","status-publish","format-standard","hentry","category-uzleti-es-munkahelyi-szabalyok"],"_links":{"self":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts\/5495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/users\/1186"}],"replies":[{"embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/comments?post=5495"}],"version-history":[{"count":0,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/posts\/5495\/revisions"}],"wp:attachment":[{"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/media?parent=5495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/categories?post=5495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/megnyitasa.com\/tudas\/wp-json\/wp\/v2\/tags?post=5495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}