| | |
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 18.02.11 Prihlásený: 12.04.15 Príspevky: 211 Témy: 5 |
Caute, potrebujem trosku pomoct. C-cko som nevidel uz par rokov a tak to aj vyzera.
zo zaciatku to ako tak slo ale teraz vobec hned to spadne. Mam pocit ze to bude mat nieco s alokaciou pameti. Ked nemam definovanu premennu char *letters tak to funguje
Kód: #include "stdio.h"
int main(int argc, char *argv[]) { FILE *fp,*fw; char c,check; int j,k=0; int z=0; int index=0; char *letters; char *sequence; fp = fopen("G.TXT","r");
if (fp == NULL) printf("File S.TXT doesn't exist\n"); else { do { c = getc(fp); /* get one word from the file */ if (c == '{'){ ++k; } if (k == 9 ){ if (c == '}') break; // printf("%d. %d %c \n",k,c,c); sequence[index]=c; index++; } } while (feof(fp) == 0); /* repeat until end of file */ } printf("\n%s\n",sequence);
fclose(fp); printf("\n"); c=getchar(); return 0; }
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 26.04.2011 21:02 | |
|
1. kto ta ucil pisat kod? tabulator a rovnaky pocet volnych riadkov medzi castami kodu ti nieco hovori? ten printf tam vyzera ako druha funkcia.. aby aspon bolo ciastocne vidiet ze ktore kusky kodu patria do ktoreho bloku preboha..
2. C:\work\test2.c:10:11: warning: unused variable 'letters'
C:\work\test2.c:8:9: warning: unused variable 'z'
C:\work\test2.c:7:9: warning: unused variable 'j'
C:\work\test2.c:6:12: warning: unused variable 'check'
C:\work\test2.c:5:15: warning: unused variable 'fw'
naco tolko premennych, ktore v kode absolutne niesu pouzite?
3. co ten program ma robit? ani po dvojnasobnom precitani toho kodu som nepochopil.. najskor zistujes ci je na vstupe zo suboru zatvorka, potom ked je 9 zatvoriek, tak pokial je tam jedna ukoncujuca tak sa vypne program.. pokial je tam nieco ine tak sa vypise 9 a dvakrat to nieco.. potom program dojde na koniec, samozrejme uz nic nespravi.. nechapem tomu dako
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 18.02.11 Prihlásený: 12.04.15 Príspevky: 211 Témy: 5 | Napísal autor témy johny29: 26.04.2011 21:12 | |
|
1. zatial sa stym len hram,vymazavam pridava, upravim to az na koniec
2. nedal som sem cely kod-zatial nepotrebny
3. po 9 najdeni "{" zacne pridavat znaky do sequence az po znak "}"
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 27.04.2011 10:11 | |
|
1. chyba: mas kontrolu, ci subor neexistuje ( ci je fp NULL ):
Kód: if (fp == NULL) printf("File S.TXT doesn't exist\n");
Ale napriek tomu davas hned za blokom else vypis dat, ktore zistujes iba v pripade existencie suboru. A hned potom davas uzavriet subor, ktory ani nebol otvoreny. Oprav to tak, ze tieto dva riadky - printf a uzatvorenie suboru - daj do bloku else, kde je potvrdena existencia suboru.
2. chyba: nemas vobec alokovanu pamat pre premennu sequence. Surovo ukladas data do pamate, ktoru nemas pridelenu od systemu.
Mas tam toho este viac, ale momentalne sa ponahlam, potom neskor ti to dopisem. Zatial si mozes toto opravit.
|
|
Registrovaný: 18.02.11 Prihlásený: 12.04.15 Príspevky: 211 Témy: 5 | Napísal autor témy johny29: 27.04.2011 14:39 | |
|
2. no sak to je moj problem, neviem ako mam dynamicky alokovat premenne
char *letters;
char *sequence;
neviem dopredu kolko znakov do nich ulozim.
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 28.04.2011 10:19 | |
|
Pomocou funkcie malloc. A velkost pamate by mohla byt trebars velkost suboru. Ak chces urobit fakt pekny kod, ze pouzijes iba tolko pamate, kolko potrebujes, tak si vytvor spajany zoznam, ktoreho prvky budu typu char. Takto budes stale vytvarat novu bunku zoznamu s hodnotou znaku, ktory precitas a na konci jednoduchou funkciu uvolnis vsetku alokovanu pamat.
Ak si este nepouzival spajany zoznam, tak si o tom radsej este nieco precitaj ( napr prvy link, co som nasiel )
|
|
Registrovaný: 18.02.11 Prihlásený: 12.04.15 Príspevky: 211 Témy: 5 | Napísal autor témy johny29: 09.05.2011 15:25 | |
|
moze sa mi niekto na toto pozriet a trosku to naformatovat a ak by sa to dalo dat to do funkcii nech to nevyzera tak debilne
http://rubbish.yweb.sk/code.c
|
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 11.05.2011 10:21 | |
|
ked uz tu je tato tema, tak napiem sem, pouzivam v programe malloc a free na pracu s pamätou
Kód: currentItem = (ITEM*) malloc(sizeof(ITEM)); a kompilator mi pise: Kód: halloffame.c:11: warning: implicit declaration of function ‘malloc’ halloffame.c:11: warning: incompatible implicit declaration of built-in function ‘malloc’
a pritom mam aj inde pouzite malloc, tak isto a tam nepise ziadny warning
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 11.05.2011 12:15 | |
|
Includni:
Kód: #include <stdlib.h>
|
|
Registrovaný: 18.02.11 Prihlásený: 12.04.15 Príspevky: 211 Témy: 5 | Napísal autor témy johny29: 12.05.2011 16:42 | |
|
Neviem ci sa spravne vyjadrim,ale potreboval by som aby sa udaje ukladali pomocou smernikou. Proste ked pridam hodnotu do keys vo funkcii get_keywords aby sa zapisala aj do key_words.
Alebo ako inak by som pomocou tej funkcie dostal hodnoty do pola key_words v main() ?
Kód: void get_keywords(char**,char*);
int main(int argc, char *argv[]){ char key_words[n_k_words+1][word_length];
get_keywords(&key_words,source_code); return 0; }
void get_keywords(char &keys,char *kod){ int i=0,j=0k=0; do{ k++; keys[i][j]=kod[k]; j++; if(kod[k] == '|' || kod[k] == 39){ keys[i][j-1]='\0'; printf("%s\n",keys[i]); i++; j=0; } } while(kod[k] != 39); }
|
|
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| c dynamická alokácia dvojrozmerného poľa v Assembler, C, C++, Pascal, Java | 4 | 511 | 02.05.2017 20:47 BX | | Staticke pole smernikov a jeho polozky - alokacia pamate v Assembler, C, C++, Pascal, Java | 6 | 1400 | 27.03.2009 17:42 programator | | Iné rozmery v PC zostavy | 2 | 323 | 07.11.2011 19:04 Iggyi | | MYTHBUSTERS + iné [ Choď na stránku: 1, 2, 3 ] v Kultúra, umenie, filmy, hudba, história, média | 69 | 9331 | 17.05.2007 16:49 fero182 | | divx a ine v Smartfóny a tablety | 2 | 225 | 07.03.2013 21:51 Smith Wesson | | Všade je iné? :( v ATI/AMD grafické karty | 5 | 318 | 11.11.2014 17:53 Phanteom | | dell wifi+ine.. v Ovládače | 0 | 642 | 14.01.2008 15:54 malman | | banner a ine v Webdesign | 6 | 650 | 28.09.2008 16:11 M@Xo | | Winrar alebo niečo iné v Ostatné programy | 12 | 901 | 01.08.2008 13:49 shiro | | Virus? alebo daco ine v Operačné systémy Microsoft | 11 | 548 | 11.01.2013 22:15 tomas_svk | | odkazy na iné stránky v Ostatné | 2 | 531 | 10.06.2008 16:07 exoomer | | Iné písmo na stránkach v Služby a webstránky | 4 | 378 | 12.08.2014 7:58 mima792 | | P: listky INE KAFE v Predám | 1 | 525 | 23.01.2011 20:35 TommyHot | | Zdroj? alebo nieco ine? v PC skrinky a zdroje | 2 | 431 | 27.04.2017 7:36 cherryman | | Prisavniky a ine ryby v Voľný čas a hobby | 3 | 1261 | 12.01.2009 15:02 feferonka | | DVD-ROM alebo ine ? v Optické zariadenia | 3 | 456 | 24.06.2011 23:44 killer |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|