Stránka: 1 z 1
| [ Príspevkov: 29 ] | |
Autor | Správa |
---|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
Caute,
Takze tu je znenie ulohy:
Kód: Napiste program ktory cita znaky zo suboru Pismena.txt a opisuje ich bud na obrazovku alebo do suboru Output.txt. Uzivatel ma moznost zvolit si smer vystupu. takze uz mam napisane toto, ale nefunguje to a neviem ze preco : Kód: #include <stdio.h>
int main() { FILE *f,*X; int c,d,x; if ((f = fopen("E:\\Pismena.txt", "r")) == 0) { printf("nepodarilo sa otvorit"); while (1); return 1; } if ((X = fopen("E:\\Velka.txt", "w")) == 0) { printf("nepodarilo sa otvorit"); while (1); return 1; } printf("Kde chces aby sa vypisovali udaje? [o/s]\n"); scanf("%d\n",&c); switch (c) { case 'o' : { while ((c =getc(f)) !=EOF) { printf("%d",c); } } break; case 's' : { while ((feof(f))==0) { fscanf(f,"%d",&d); putc(d,X); } } break;} fclose(f); fclose(X); while(1); return 0; }
viem da sa to vyriesit aj inak, ale ja to chcem tak aby tam bolo to switch, len neviem kde je chyba, nejak velka to dufam nebude
pozrite sa niekto na to prosim
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
skus dat prec to E:// daj tam iba to Pismena.txt
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
ale ved to tam asi musi byt, lebo potom vypise ze sa nepodarilo otvorit subor
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 12.10.06 Prihlásený: 25.11.24 Príspevky: 20540 Témy: 79 | 79 Bydlisko: Banska Byst... |
jake "asi" ? to mas davno vediet...
a odkedy sa v ceste k suboru pise dvojita lomka? to sa robi jedine ked pises cestu v sieti na nejaky server...
_________________ Ryzen 7 3700X | SilentiumPC Fera 3 | Asrock X570M Pro4 | Patriot Viper 4 Blackout 16GB DDR4-3600 CL17 | Gainward RTX4060 Ti Pegasus 8GB | Samsung 970evo Plus 250GB NVMe | Corsair MP510 1TB NVMe | Samsung 980 Pro 2TB NVMe | Corsair RM550x | 32" Samsung ViewFinity S60UA | 3x Noctua NF-S12B redux 1200 PWM Xiaomi Mi 9 Lite 64GB |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
tak nie asi ale urcite to tam ma byt
a s tym dvojitymi lomitkami nemas pravdu, lebo pre zapis adresarovej cesty je nutne v retazovych konstantach vsetky \ zdvojit, aspon takto to viem ja, a doteraz mi to fungovalo a chyba neverim ze je tu
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
takze po hodinach trapenia som to nakoniec zvladol
tu je kod:
Kód: #include <stdio.h>
int main() { FILE *f,*X; int d,c,x; if ((f = fopen("E:\\Pismena.txt", "r")) == 0) { printf("nepodarilo sa otevrit"); while (1); return 1; } if ((X = fopen("E:\\Velka.txt", "w")) == 0) { printf("nepodarilo sa otevrit"); while (1); return 1; } printf("Kde chces aby sa vypisovali udaje? [o/s]\n"); c=getchar(); switch (c) { case 'o' : {while ((x=getc(f)) != EOF) printf("%c",x); break;} case 's' : {while ((feof(f))==0) { x=getc(f); fprintf(X,"%c",x); } break;} } printf("KONEC"); fclose(f); fclose(X); while(1); return 0; }
a este otazka aky je rozdiel medzi tymto:
x=getchar(); a scanf("%c",&x); a scanf("%d",&x); a hlavne to ktore mam kedy pouzit
kedze z knihy z ktorej sa ucim tam je vzdy pri citani pismen %d a to znamena dekadicku hodnotu a nechapem preco nepouzil napr. %c co znamena znak.
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 27.06.08 Prihlásený: 04.07.11 Príspevky: 114 Témy: 12 | 12 |
tak ako
Kód: scanf("%c",&x) toto ti nacitava znak ktory uklada do premennej typu char Kód: scanf("%d",&x)
toto ocakava na vstupe cele cislo teda mozes zadavat len cisla neviem ako to je s pismenami vtedy sa mi zda ze to berie ascii hodnotu ktoru ked vies tak mozes pouzit ale ja osobne ked mam nacitavat znaky tak pouzivam %c a ked cisla tak %d
|
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
no ano tiez tam s %d ked berieme znaky tak ASCI kod sa berie, takze toto chapem a este by si mohol vysvetlit toto:
aky je rozdiel medzi tymto c=getchar() a getchar(), lebo niekedy mozem pouzit len getchar(), to prve to znamena ze ten znak ktory precita vlozi do c ale pri tom druhom kde sa ulozi ten znak? a getchar cita iba znaky, cisla necita?
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
cita to getchar() nacitava do bufferu potom napr ked je program zadajte cislo a uzivatel zada 3 cisla a pouzijes celecislo=getchar() getchar() nacita iba prvu cislicu cisla a potom ked zase chces neco nacitat ze zadajte dalsie cislo a znovu pouzijes getchar() tak nepocka kym uzivatel zada dalsie cislo ale vezme si to z bufferu pretoze zzadal najprv tri tak nacita teraz druhe ak to chces pouzit ako to getchar}| za sebou tak tak musis zakazdym vycistit buffer tu je na to navod
Kód: char znak; znak=getchar();
if(znak!= '\n') while(getchar()!='\n') ;
to je ten kod an vycistenie buffera
Naposledy upravil reDo dňa 21.05.2009 18:42, celkovo upravené 1
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
takze je lepsie pouzit scanf aby som nemusel ten buffer vyprazdnit?
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
asi hej
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
takze ak som to dobre pochopil getchar() precita vsetky zadane znaky napr.
zadam 2 cisla : 5 a 6 (medzi cislami nebude medzera, lebo potom nasledujuci getchar by malo v sebe medzeru a tu by mi zobrazila)
dam c=getchar();
c bude mat v sebe znak 5, ale v bufferi je 5 a 6 a a nabuduce ked dam x=getchar() tak mi vypise 6
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
presne tak
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 30.05.07 Prihlásený: 29.03.14 Príspevky: 641 Témy: 46 | 46 |
petos píše: takze ak som to dobre pochopil getchar() precita vsetky zadane znaky
nie, getchar() zoberie prvy znak z buffera
dalej si to uz opisal spravne, takze:
zadas:
123[enter]
v buffery budu 4 znaky (lebo aj ten enter) ale niekedy iba 3 (bez enteru)
ked das getchar() tak vrati 1 a v buffery bude
23[enter]
ked das zas getchar(), tak vrati 2, v buffery ostane
3[enter]
...
proste logicky, buffer je proste nieco ako pamat a ukladaju sa tam do fronty data, v tomto pripade znaky, a od implementacie zalezi ci sa tam ulozi aj ten enter, ktorym sa potvrdzuje vstup...
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
no tak som to myslel
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
tlacitko Enter píše: nie, getchar() zoberie prvy znak z buffera
dalej si to uz opisal spravne, takze: zadas: 123[enter] v buffery budu 4 znaky (lebo aj ten enter) ale niekedy iba 3 (bez enteru) ked das getchar() tak vrati 1 a v buffery bude 23[enter] ked das zas getchar(), tak vrati 2, v buffery ostane 3[enter] ... proste logicky, buffer je proste nieco ako pamat a ukladaju sa tam do fronty data, v tomto pripade znaky, a od implementacie zalezi ci sa tam ulozi aj ten enter, ktorym sa potvrdzuje vstup...
tak uz som to ako tak pochopil, len ak prikaz getchar() nezobere vsetky znaky ktore som zadal, tak co potom ich zobere ? toto : x=getchar() ? a v x bude iba prvy znak z celeho buffera
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 30.05.07 Prihlásený: 29.03.14 Príspevky: 641 Témy: 46 | 46 |
co co potom? kedy potom? nevidim problem. Proste kazdy getchar() ti da jeden znak, takze musis vediet kolko znakov sa bude nacitavat aby si vedel kolko getcharov sa ma pouzit, alebo sa da pouzit getchar v cykle, alebo nieco uplne ine...
Mam pocit ze vela ludi tu na fore riesi veci na ktore este nemaju, alebo sa nevedia spravne vyjadrit, alebo je to prilis zlozite... Zacinat s C/C++ bez predchadzajucich skusenosti napr s pascalom a v nizkom veku kedy este nie je rozvinuta logika na potrebnu uroven je tazke a potom sa aj tazko radi, takze musite ludia lepsie pokladat otazky a viac hladat na internete alebo v knizke rozne postupy...
|
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
skusenosti s programovanim mam, uz som programoval v pascale 1 rok, v ccku som zacal pred tyzdnom a musim zvykat novu syntax, ide mi zatial vsetko aj cyklusy, len v tej knihe z coho sa ucim, tak tam nie je poriadne vysvetlena tato funkcia, tak potom jasne ze to nechapem, ale uz v tom mam jasnejsie
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 27.06.08 Prihlásený: 04.07.11 Príspevky: 114 Témy: 12 | 12 |
pocuj na C ti odporucam knihu od Pavela Herouta - Ucebnice jazyka C ma to dva diely prvy je vsetko vysvetlene tak ze to pochopis v podstate hned .............. a 2. diel ten bohuzial nemam ale zhanam tam uz su ulohy pre skusenejsich ale su tam aj popisy a postupy ako riesit ulohy
|
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
tak si asi tu knihu zozeniem, ak vravis ze je dobra a ani nie je draha
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
uz som si ju zohnal, a konecne je mi v tom uz jasno, fakt dobra kniha.
vedeli by ste mi poradit nejaku knihu len o teorii programovania mam na mysli algoritmy atd. napr. ako nieco taketo :
http://www.martinus.sk/?uItem=18880
je to dobra kniha? oplati sa nieco taketo kupit?
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
nwm aj ja ju mam v plane
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 | 3 |
Nie je zla, ale myslim, ze pre zaciatocnika by bola lepsia ta od P. Topfera - Algoritmy a Programovaci techniky.
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
nad nou som tiez rozmyslal, v com je lepsia? mal si ju?
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 | 3 |
Hej, mam ju, taktiez mam aj tu od Wroblewskeho. Kapitoly sa mi v nej zdaju byt lepsie usporiadane, teda pre zaciatocnika urcite, imho. Prva kapitola v Algoritmy, Datove stuktury a programovaci techniky je rekurzia, zatial co Topfer ide viac od zakladov...
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 14.02.08 Prihlásený: 04.01.15 Príspevky: 1272 Témy: 46 | 46 Bydlisko: Bratislava |
ale obsahovo su podobne nie?
este to ze v tej knihe co odporucas su priklady riesene v pascale a v tej druhej su riesene v C++ , a k pascalu prejst sa mi zase nechce.
a este jedna vec, teraz sa ucim iba C , tak potom ked v tej knihe su prikaldy v C++ nebudu mi robit nejake problemy? ako vidim tak v tej knihe je aj rychlokurz na C++ co by sa aj celkom hodil.
Naposledy upravil petos dňa 28.05.2009 16:36, celkovo upravené 1
_________________ CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
aj ja
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 | 3 |
Su podobne, ale neviem preco hovoris, ze sa ti nechce k Pascalu vracat. Jazyk nie je dolezity, pochopis to predsa aj ked to je v Pascale aj v C++. A ten rychlokurz za vela nestoji, ma to len asi 15 stran, cize moc sa toho nenaucis. Ajked nejaka hlboka znalost C++ nie je imho potrebna.
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Stránka: 1 z 1
| [ Príspevkov: 29 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 3 | 438 | 09.01.2010 19:01 ac.milan | | v PHP, ASP | 10 | 1214 | 04.01.2006 0:00 Pekaboo | | v Assembler, C, C++, Pascal, Java | 1 | 314 | 23.07.2013 6:31 BX | | v PHP, ASP | 13 | 1128 | 16.02.2007 7:14 zero0x | | v PHP, ASP | 5 | 463 | 20.03.2008 12:41 Kyborg | | v Kôš | 1 | 13 | 15.05.2020 14:02 michalesku | | v Elektronika | 5 | 698 | 16.12.2007 17:22 Jopi | | v Video programy | 13 | 757 | 17.08.2008 11:57 GriM | | v nVidia čipové sady | 10 | 1238 | 28.06.2008 21:01 mako666 | | v Notebooky a netbooky | 4 | 387 | 06.09.2013 7:42 magor90051 | | v Optické zariadenia | 6 | 773 | 01.02.2009 1:06 emerka | | v Elektronika | 10 | 794 | 17.08.2007 11:43 fugass | | v Ovládače | 0 | 720 | 31.10.2007 9:35 sapphyr | | v Notebooky a netbooky | 1 | 388 | 09.04.2015 19:16 tairikuokami | | v Ostatné | 5 | 799 | 22.06.2009 13:22 Sobansky | | v Elektronika | 4 | 752 | 10.03.2007 16:13 Taomas |
|