Fontos linkek a C-ről:
Prog.hu-s cikkek
Prog.hu-s tudástár témák
The C Library Reference Guide
Standard C
Wikipedia
C Tutorial
Programming in C
Bevezetés a C programozási nyelvbe
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] Gurulunk, WAZE?!
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- [Re:] [ldave:] New Game Blitz - 2024
- [Re:] ZUK Z2 - Kicsi a bors, de erős!
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
- Utoljára frissítve: 2014-04-25 14:12:00
LOGOUT.hu
Hozzászólások
Benmartin
senior tag
Elég általános kérdéseket teszel fel: "Hogyan születik meg a javított kimeneti fájl?" Hát úgy, hogy létrehozod a fájlt, erre mit lehet mondani?
1.) fgets
2.) Egyébként én úgy csinálnám, hogy magát a fájlneveket is kigyűjteném egy fájlba és abból olvasnám be, majd nyitnám meg a fájlokat.
3.) fopen("javitott.txt","w")
Benmartin
senior tag
De megírtam, hogy ne csak dumáljak itt:
#include <stdio.h>
#define MAX_FAJLNEV_HOSSZ 100
FILE * filelist, * file;
char name[MAX_FAJLNEV_HOSSZ+1], * block;
unsigned int h;
int main()
{
filelist = fopen("filelist.txt","r");
while(!feof(filelist))
{
fscanf(filelist,"%s",name);
file = fopen(name,"r");
fseek (file,0,SEEK_END);
h = ftell(file);
rewind(file);
block = (char *) malloc(h);
fread(block,1,h,file);
block += 4;
fclose(file);
fopen(strcat(name,"_jav.txt"),"w");
fwrite(block,1,h-4,file);
fclose(file);
}
fclose(filelist);
return 0;
}
doc
nagyúr
ezt kimondottan C-ben akarod megirni, vagy csak a megoldas a fontos?
Linux alatt ez igy nez ki:
cat *txt | cut -c 5-
vagy ha kulon txt-kbe kell a vegeredmeny is:
for i in *txt; do cat $i | cut -c 5- >vagott-$i ; done
[ Szerkesztve ]
Jester01
veterán
Ajjjaj ilyen rossz példával ne kábítsuk szegény tanulókat
Hirtelen ennyi:
1. te nem a sorok elejéről szedted le az első 4 karaktert
2. az fscanf visszatérési értékét célszerű ellenőrizni, nem pedig a feof-ot
3. %s formátummal nem olvasunk fájlneveket (sem) mert megáll a szóközöknél
4. az fscanf-ben nincs hossz limit
5. teljesen felesleges betölteni a memóriába a fájlt
6. strcat-hoz hiányzik a megfelelő #include
7. malloc-hoz hiányzik a megfelelő #include
8. a malloc void*-ot ad vissza, csúnyán néznek azokra akik ezt cast-olják
9. a lefoglalt memóriát nem szabadítod fel
10. a változók globálisak nem lokálisak
11. az ftell nem unsigned int-et ad vissza
12. hibakezelés teljes hiánya
Jester
Benmartin
senior tag
1.) Tényleg elnéztem.
2.) Meglehet, gyakorlatban azonban működik.
3.) Jó, hát általában nem teszünk szóközt a fájlokba.
4.) Azért van a MAX_FAJLNEV_HOSSZ.
5.) Több megoldás is létezik.
6.-7.) ANSI C fordítónak nem is kell.
8.) Csúnyán néznek de működik, mondjuk akár ki is lehet venni.
9.) Ez jogos.
10.) Ebbe fölösleges belekötni.
11.) long-ot, de ebből nem igen lesz probléma.
12.) Nem is akartam hibakezelést írni. (gondolom magának írja)
Jester01
veterán
Azért kötözködtem, mert tanuláshoz rossz példa.
2. Izé, kipróbáltad? Mert nem működik, mivel a feof csak azután lesz igaz, hogy túlmész a fájl végén. Tehát előfordulhat, hogy eggyel többször fut a ciklusod és az utolsó alkalommal ki tudja milyen adatra. Ehhez csak az kell, hogy az utolsó sor végén is legyen egy soremelés (márpedig ez normális dolog). Egyébként is pl. %d esetén vagy bonyolultabb formátumstringnél abból tudod, hogy sikerült-e beolvasni valamit. ellenkező esetben könnyen végtelen ciklus lehet (ugyanis olyankor a fscanf nem eszi meg a hibás adatot, de feof sem lesz)
3. sajnos de. sőt, még ékezeteket is. sokat szívok ezekkel én is a munkám során, főleg linux-windows közötti másolgatás nagy élmény (meg a kalapos vs. rendes ő/ű)
4. az azért van, hogy annyit kezel a programod, addig ok. de sehol nem biztosítod, hogy ne is legyen több. Az fscanf jelen formájában vidáman megesz többet is és szép buffer overflow lesz belőle. Ezt is jobb idejekorán megtanulni.
5. igen, és ez a rossz. már miért is ne lehetne egy 120GB-os fájlt feldolgozni csak azért mert nincs 120GB memóriám.
6-7. már hogyne kellene. Amelyik függvénynek nincs prototípusa, azt alapból int visszatérési értékkel feltételezi a fordító. Márpedig sem a malloc sem pedig az strcat nem int-tel tér vissza. És ha az int véletlen nem binárisan kompatibilis a void* illetve a char* típusokkal (pl 64 bites rendszer esetén) akkor az instant segfault.
10. szerintem nem fölösleges, jobb ha az újonc azt látja hogy a változókat a lehető legszűkebb körben deklaráljuk
11. azt te honnan tudod? És ha 5GB-os fájlra akarom futtatni? Vagy 128kB-osra 16 bites rendszeren?
12. ja és akkor nem kell. pl ha egy fájl (vagy sor) véletlen nincs 4 karakter akkor a program összeomlása az rendben van?
Jester
Sk8erPeter
nagyúr
Hali!
Köszi, hogy megírtad, de ez a program igen érdekes dolgokat csinál
A végeredmény az lesz, hogy MINDEN karakter után tesz egy szóközt. Egy fájlnál az összes sortörést is kitörölte (mondjuk nem értem, hogy ezt a másiknál miért nem tette).
Szemléltetésként ilyen lesz: [link] (itt épp php-kódokat másoltam ki pdf-ből, a sorszámozást ki akartam szedni, de ez a lényeg szempontjából tök mindegy)
Első lefordításnál ilyen hibát dob:
(már a while(!feof(filelist))-nél baja van)
Gondolom ezért is működik hibásan többek közt...
Aztán már le sem akar fordulni (létrehozni az exe-t), na mindegy, itt valami nagyon nem jó...
De azért thx. Egy javított verzió jól jönne... Előre is köszi!
Egyébként az "általános kérdéseket" hajnali fél 5 közeledtével fogalmaztam meg, így simán elképzelhető, hogy hülye kérdést tettem fel...
(#1103) doc: igazából mindkettő... de inkább gyakorolni szeretnék C-ben.
Nem használok Linuxot (egyelőre). Tehát elsősorban a C-s megoldás érdekelne.
Nyilván létezik egyébként olyan külső program (pl. Lupas Rename), amivel lazán megoldható, de abból nem lehet tanulni.
(#1104) Jester01: Esetleg tudnál egy javított változatot mutatni?
[ Szerkesztve ]
Sk8erPeter
Benmartin
senior tag
Mert különbözik a compilerünk, kipróbáltam mielőtt elküldtem neked.
Benmartin
senior tag
2. Igen, kipróbáltam, bizonyára azért működött, mert nem volt '\n' a sor végén.
3. Oké, elfogadom, én nem szoktam, lehet azért írtam így.
4. Ez oké, de nem akartam bele hibakezelést írni, meg overflowokra figyelni, mert az kétszer ennyi kód, jelzésnek viszont ott volt, hogy mire képes.
5. Szerencsére itt nem voltak olyan méretek.
6-7. Ennek ellent kell mondjak rengeteg forráskódot küldtem már programozó versenyekre, ahol oline judge fordít ANSI C fordítóval, és nem igényelte a headereket, tulajdonképpen még az stdio.h-t sem.
10. Ez kérdéses, hogy mikor jó, mikor nem. Ebben a kódban semmi jelentősége nem volt, hogy globálisak a változók, egy másik példában lehet zavart okoz, egy másikban meg lehet, hogy pont úgy célszerű.
11. Valóban nem tudhatom, ha ilyen egyéni igények vannak, akkor lehet változtatásokat eszközölni.
12. Nincs rendben, de mondtam, hogy ennek kivédését nem állt szándékomban megírni.
Sk8erPeter
nagyúr
"mert nem volt '\n' a sor végén." De itt pont különálló, sortöréssel elválasztott sorokról van szó... bár lehet, hogy félreértelek...
Milyen fordítóval próbáltad? Nálam most Visual Studio 2003 van fent (azért használom ezt egyelőre, mert egyetemen is ezt használják szoftver laboron, nem akarom, hogy a fordító különbözősége miatt ott jelentkezzen egy hiba, amire nem számítok)
Most még mindig csak azt nem tudom, hogyan is kéne akkor megoldani a feladatot, na majd próbálkozom...
Azért kérdeztem egyébként, hogy mivel olvastassam be az adatokat, mert lehetne fscanf(), fgets(), fgetc(), fread(), és még ki tudja, hány függvénnyel is elvégeztetni ezt a feladatot (fgetc nyilván nem jó, meg fscanf sem, asszem annak is van valami szóköz-problémája).
Valami olyasmire gondoltam egyébként, hogy a progi a beolvasáskor az első /n-ig elmegy, eltárol egy sort valamilyen tömbbe vagy akármibe, és ezt úgy adja ki, hogy az 5. karaktertől lesz kiírva. Végül is ha tömbként kezelem, akkor elvileg a 0. elemtől kezdi, akkor elég lenne csak hozzáadni +4-et, hogy kezdje onnan, nem?
Sk8erPeter
Jester01
veterán
5. Nem, de miért nem írod egyből jóra a programot? Azért, hogy extra pénzt kaszálj majd a professional verzióért ami nagyobb fájlokat is tud kezelni? Igen, lefordul, csak esetleg nem működik. Ráadásul a változó argumentumot használó függvényeknek ansi C szerint is kötelező a prototípus (pl. fscanf, printf) tehát általában az stdio.h bizony nem elhagyható. Az meg, hogy egy adott fordító esetleg mit eszik meg és mit nem, abszolút nem befolyásolja hogy mi van a szabványban vagy hogy mi a helyes.
6-7. melyik részének mondasz ellent? Annak, hogy int a prototípus nélküli függvények visszatérési értéke vagy annak, hogy pl. 64 biten piszkosul megszívod ha int-et használsz pointer helyett?
A többire pedig továbbra is csak azt tudom mondani, hogy lehetőleg ne ezt tanítsd egy kezdőnek.
Jester
Jester01
veterán
Szerintem a fájlod esetleg unicode lehet, az bekavarhat.
Jester
Jester01
veterán
Na itt az én verzióm, hogy ti is kötözködhessetek. Amit még én magamba belekötök, hogy lehetne még:
1. függvényekre szétszedni
2. a hosszú fájlneveket is (láncolt listával) kezelni
3. a tab-okat kezelni
4. locale beállításokat figyelembe venni
5. a kimenő fájlnevet szebben előállítani
6. parancssori argumentumokat kezelni
Jester
cellpeti
veterán
Hogyan tudom kiiratni EOF értékét?Mert ilyen progit kéne megírnom,de ....
[ Szerkesztve ]
Tigris, tigris, csóvafény...
426os
őstag
Sziasztok.
Nem tudom ki hallott már a SE és Siemens telefonokon futtatható elfekről. Ezek apró kis programok, amelyek közvetlenül a hardverrel kommunikálnak, tehát elég gyorsan tudnak futni.
Viszont elég kevés elfnek nyilvános a forráskódja, és ennek hiányában nem igazán lehet belenyúlni, gondolok itt a lefordítást más nyelvre. Valamilyen szinten hex editorral ugye át lehet írni a karaktereket benne, de az nem az igazi. Ha jól tudom ezek C-ben vannak írva, tehát remélem jó helyen érdeklődök. Mégpedig afelől, hogy létezik-e olyan program, ami képes visszafejteni a kész, futtatható programot forráskódra. Mellékelek pár elfet (meg 1-2 forráskódot is, amihez nyilvános), csakhogy tudjátok miről beszélek.
[link]
Tudom, hogy az lenne a legegyszerűbb, hogy megkeresném a készítőket és elkérném a kódot, de ez sajnos nem járható út, mivel orosz barátaink nem szívesen adják azt ki.
Előre is köszönöm, ha valaki veszi a fáradtságot és foglalkozik velem.
üdv,
batonyo
.
gygabor88
tag
Ha csatolva van a stdio fejállomány, akkor printf("%d",EOF).
gygabor88
tag
Sosem foglalkoztam telefonokkal, de ha egy forráskódból futtatható binárist készítesz, akkor abból nem kapható vissza az eredeti forráskód. Az azonosítókat nem fordítják bele, így pl változóneveket, függvényneveket biztos nem lehet visszahozni. Ha van a telefonokra valami assembly szerű nyelv, akkor ilyen assembly utasításokra valószínűleg vissza lehet fejteni.
cellpeti
veterán
Sziasztok!
Van nekem egy olyan feladatom,hogy a bemeneti szöveget úgy kell átmásolni a kimenetre,hogy a közben előforduló tabulátorkaraktereket \t,a visszaléptetés \b és a fordított törtvonal(backslash) karaktereket \\ karakterekkel helyettesíti.
Na én elkezdtem ezt a progit,de \\ helyet csak \ rak,ez valszeg a putchar miatt van,valszeg nem ezt kell használni. Megpróbáltam printf-vel is,de ott se jutottam előrébb. Lehet az egész rossz,ahogy elkezdtem,ezért ha valaki tud adjon tanácsot,megkösszönném.
a kód:
#include<stdio.h>
void main(void) {
int c;
c = getchar();
while(c!=EOF)
{
if (c=='\t') putchar('\\');
if (c=='\b') putchar('\\');
if (c=='/') putchar('\\');
else putchar(c);
c=getchar();
}
}
Esetleg egy darab if-ben nem lehetne megoldani a dolgot?
[ Szerkesztve ]
Tigris, tigris, csóvafény...
SLD
tag
Ez nem gond, a \ jellel aktiválod, az őt követő karakter "különleges értelmezését", ami legtöbbször egy formázó karakter. Szóval az első \-el aktiváltad ezt, így a második \ megjelent (itt saját maga esetén persze nem aktiválod vele, hanem tulajdonképpen deaktiválod, de ez már csak részletkérdés), ha ebből Neked két darabot kell kiíratnod, akkor \\\\ -t (4x) kell írnod.
Szerk: No persze, ha a putchar, csak egy char-t tud kezelni akkor az lehet gond lesz, mert két \ már két karakter, várunk egy C -s kollegát
A kódhoz, C++-os lévén, inkább nem szólok hozzá, de ha már kiírt egy \-t akkor nagy baj nem lehet.
[ Szerkesztve ]
cellpeti
veterán
cellpeti
veterán
Valaki tudna ebben segíteni?
Tigris, tigris, csóvafény...
PazsitZ
addikt
Én így csinálnám:
#include<stdio.h>
int main() {
int c;
c = getchar();
while(c!=EOF)
{
if (c=='\t') printf("\\\\");
if (c=='\b') printf("\\\\");
if (c=='/') printf("\\\\");
else putchar(c);
c=getchar();
}
return 0;
}
De nem biztos, hogy a legjobb megoldás, régen c-ztem.
[ Szerkesztve ]
- http://pazsitz.hu -
PazsitZ
addikt
vagy ha mindenképp a putchar('\\'); kell akkor 2db putchar-t raksz az if ágba.
- http://pazsitz.hu -
cellpeti
veterán
egészen addig vágom a dolgot,amíg nem jön oda a return 0,az mire kell oda?
Tigris, tigris, csóvafény...
cousin333
addikt
Visszatérési érték, hogy minden frankón lefutott.
A "\" meg az escape karakter, aminek speciális jelentése van (pl. a "\n" jelzi a sortörést), éppen ezért nem lehet csak úgy magában leírni, hanem duplázni kell, jelezve, hogy kivételesen tényleg egy "\"-re vágysz.
[ Szerkesztve ]
"We spared no expense"
cousin333
addikt
"Esetleg egy darab if-ben nem lehetne megoldani a dolgot?"
De, erre van a switch-case szerkezet. [link]. Mondjuk a példa nem lesz tőle egyszerűbb.
"We spared no expense"
cellpeti
veterán
jó a program! tényleg lefut! de nekem void main(void)-val kezdenem a progit és úgy viszont nem fut le.
Tigris, tigris, csóvafény...
Lortech
addikt
Akkor vedd ki a returnt, bár igazán kiváncsi lennék az okára, mert épp az int-es a jó.
amúgy meg 1 if:
if (c=='\t' || c=='\b' || c=='/') printf("\\\\");
else..
Thank you to god for making me an atheist
cellpeti
veterán
Az ok: Bauer Péter
Tigris, tigris, csóvafény...
PazsitZ
addikt
void main() esetén nem kell neki visszatérési érték.
Bár én is úgy tudom az a szabványos ha az int main() formát használja az ember.
[ Szerkesztve ]
- http://pazsitz.hu -
Lortech
addikt
Hát akkor legyen neki úgy az ő gyakján, de jó, ha tudod ettől függetlenül:
[link]
Thank you to god for making me an atheist
cellpeti
veterán
Sokan mondták,hogy ez így nem ok,de ha egyszer így kéri a tanár,mert különben bukta van,akkor sajnos csak ez marad.
Tigris, tigris, csóvafény...
Sk8erPeter
nagyúr
Bocsi, hogy csak most válaszolok, nem nagyon voltam gépközelben!
Köszönöm, hogy megírtad, ez nagyon faszán működik!
Pár rövid pluszkérdés:
1.) Ami érdekességet (számomra érdekes) felfedeztem, hogy ha sima Notepad-del, Unicode kódolással mentek egy fájlt, akkor nem működik a program, és egy 0 bájtos verziót készít el, míg az ANSI kódolásúakkal nincs probléma. Ez mitől van?
(Ha Notepad++-szal készítem el ugyanazt a fájlt, amiért a sima Notepad pampog, hogy elveszhetnek egyes karakterek, ha nem Unicode-ban mentem, akkor semmi para. Gondolom alapvetően a Notepad++ ANSI kódolással készíti el a fájlt, nem?)
2.) A "const int column" miért fontos, hogy const legyen?
3.) A "char infilename[MAX_FILENAME_LENGTH + 1];" sornál miért kell a +1?
4.) Ugyanígy ott van a plusz 1 a "char outfilename[MAX_FILENAME_LENGTH + 9]; /* a +8 a _jav.txt miatt */" sorban.
5.) A többin még gondolkozom...
Még egyszer köszönöm, hogy megírtad!
Sk8erPeter
skylaner
senior tag
3-4
Mert a C automatikusan a string végére tesz egy '\0'-t, így tudja, h vége annak a stringnek.
Így n hosszú strignek n+1 nagyságú tömb kell.
Amikor pl te ezt írod,hogy: char a[]="abc" akkor a fordító automatikusan lefoglal +1 helyet még a \0-nak.
char a[]="abc";
char b[]={'a','b','c','\0'};
printf("%d\n",sizeof(a)); // 4byte
printf("%d\n",sizeof(b)); // 4byte
Jester01
veterán
1. azért mert unicode (akár utf8 akár utf16/ucs2) esetén nem 1 byte 1 karakter. Utf16 esetén továbbá sok 0 byte is előfordul ami C-ben sajnos a string végét jelzi.
2. nem fontos, de ha egyszer konstans, akkor miért ne
3-4. lásd a kollega válaszát fentebb
5. jó
Jester
skylaner
senior tag
Nekem is lenne egy kérdésem.
Kb. 1,5 éve nem foglalkoztam a C-vel, elvileg számgép-háló 2-n ebbe fogunk programozni, így
az a gondolatom támadt, hogy nem ártana átnézni a dolgokat
Na szóval lenne nekem egy bináris keresőfás programocskám, ami működik is, annyi lenne a kérdésem, h az alábbi fgv valóban felszabadítja-e a lefoglalt memóriát. Jó ez így, vagy máshogy kellene csinálni ?
typedef struct fa{
int ID;
struct fa* left;
struct fa* right;
} Fa;
........
void felszabadit(Fa* myFa)
{
if(!myFa) return;
felszabadit(myFa->left);
felszabadit(myFa->right);
free(myFa);
}
int main() {
Fa* myFa=NULL;
.........................
felszabadit(myFa);
myFa=NULL;
return 0;
}
Vagy esetleg magának a pointernek a címet kellene átadni, felszabadit(&myFa) és akkor void felszabadit(Fa** myFa) ......?
[ Szerkesztve ]
cellpeti
veterán
Sziasztok!
Nekem van egy feladatom,de nem teljesen értem.
Írjunk programot,ami a bemenetre adott szöveget úgy másoljuk át a kimenetre,hogy közben az egy vagy több szóközből álló karaktersorozatokat egyetlen szóközzel helyettesíti!
Mi a feladat végülis?
Tigris, tigris, csóvafény...
skylaner
senior tag
Valami ilyesmi szerintem.
*=szóköz
bemenet:dfsdfsdf*dfsdf***dfsdf********fdfd*fdsf****
kimenet: dfsdfsdf*dfsdf*dfsdf*fdfd*fdsf*
cellpeti
veterán
magyarul mindenhova csak 1 szóköz kerülhet?
Tigris, tigris, csóvafény...
skylaner
senior tag
Jaja, mást nem nagyon tudok elképzelni a szöveg alapján.
Jester01
veterán
Ránézésre jó.
MOD: eltekintve attól, hogy összevissza kevered a nyelveket (mmint a magyart meg az angolt)
[ Szerkesztve ]
Jester
skylaner
senior tag
Ok, kösz.
Tudom, hülye szokás
Szerk:
De most belegondolsz nem kell annyit írni
myTree /+2 kar sajatFa /+3 kar esetleg Fam, de ez még rosszabb mint az eredeti.
[ Szerkesztve ]
cellpeti
veterán
Sziasztok!
Csillaggal már sikerült megírnom a programot,viszont szóközzel még nem igazán.
Arra gondoltam,hogy lehet az ASCII kódjával kéne próbálkozni. Tudja valaki a szóköz ASCII kódját?
Tigris, tigris, csóvafény...
skylaner
senior tag
Hát ha nem is tudjuk fejből a kis kínai barátunk Goog Lee mindent tud: [link]
Vagy: for(i=0;i<256;i++) printf("%d:%c\n",i,i);
Amúgy ha * megy akkor szóközzel is ugyanúgy mennie kéne.
char a[255];
int i=0;
gets(a);
for(i=0;i<a_hossza;i++) {
if(a[i]==' ') .........
cellpeti
veterán
a könyv elején van,nem hiszem,hogy ilyen bonyolult lenne a megoldás
Tigris, tigris, csóvafény...
skylaner
senior tag
Én így csináltam, de szerintem egyáltalán nem bonyolult.
int main(){
char a[255], b[255];
int i=0,space=0,j=0,hossz;
printf("Bemenet:");
gets(a);
hossz=strlen(a);
for(i=0;i<hossz;i++) {
if(a[i]==' ') space++;
if(a[i]!=' '){
b[j]=a[i];
space=0;
j++;
}
if(space==1){
b[j]=a[i];
j++;
}
}
b[j]='\0';
printf("Kimenet:%s\n",b);
getch();
return 0;
}
Aztán biztos van egyszerűbb megoldás is,de elsőre ez jutott eszembe.(Mondjuk Perl-be egy sor lenne az egész )
[ Szerkesztve ]
cellpeti
veterán
mi az a gets?
[ Szerkesztve ]
Tigris, tigris, csóvafény...
skylaner
senior tag
Egy sort olvass be az inputról az Enter lenyomásáig. Az új sor karaktert '\n' nem olvassa be.
cellpeti
veterán
köszönöm!
Tigris, tigris, csóvafény...
Jester01
veterán
Viszont nincs benne hossz korlátozás ezért használata erősen ellenjavalt (buffer overrun). Helyette általában az fgets ajánlott, de vigyázat, az viszont eltárolja a sorvég jelet is. Jelen esetben azonban teljesen felesleges sorokat olvasni, mivel a feladat karakter-orientált.
Jester
Téma tudnivalók
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Mai Hardverapró hirdetések
prémium kategóriában
- Krómozott előlapos Jura Z5 automata kávéfőző beépített profi cappuccino fejjel
- Eladó teljesen új, bontatlan Nespresso Essenza mini piros színben
- Motorola Razr 40 - 8GB 256GB DualSIM Sage Green - Bontatlan - Garanciális
- Canon Ixus 285 HS
- Új! Bontatlan! Samsung 8TB 2.5 SSD eladó! Országos Szállítással