Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
C naplnenie pola

Registrovaný: 15.10.11
Prihlásený: 07.03.12
Príspevky: 13
Témy: 6
Príspevok NapísalOffline : 11.12.2011 12:16

Pokusam sa naplnit pole znakmi, teda slovami zo suboru. Slova v subore su klasicky v tvare :
jedna
dva
tri

Tu mam kod, lenze sa mi tam zrejme uklada ascii hodnota, no mam v tom dost zmatok, dufam, ze mi niekto bude vediet poradit ako to ma byt a preco...
Kód:
wchar_t *slovo;
slovo = (wchar_t *) malloc(100*sizeof(wchar_t));

while ((ch = fgetwc(f1)) != WEOF)
  {
    if (ch == '\n')
    {
      slovo[i] = slovo[i] + '\0';
      i++;
      n++;
    }
    else
    {
      slovo[i] = slovo[i] + ch;
    }
  }



Offline

Skúsený užívateľ
Skúsený užívateľ
C naplnenie pola

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 11.12.2011 12:57

Najprv ta upozornim na jeden zlozvyk: v jazyku C by sa nemala pretypovat navratova hodnota z funkcie malloc. Neviem, ci ste sa to tak ucili na skole, ak ano, tak si to uz nechaj, ale kazdopadne sa to neodporuca. Staci takto:
Kód:
slovo = malloc( 100 * sizeof( wchar_t ) );


K tvojmu problemu: pises, ze chces iba ulozit obsah suboru do pola. Tak preco robis toto:
Kód:
    if (ch == '\n')
    {
        slovo[i] = slovo[i] + '\0';


Aj tak, toto urcite nerobi nic dobre, takyto zapis sa pouziva v pascale, v C-cku su retazce reprezentovane adresami. Nestacilo by nieco taketo? ( za predpokladu, ze n charakterizuje nove slovo )
Kód:
while ( ( ch = fgetwc( f1 ) ) != WEOF )


    slovo[i++] = ch;
   
    if (ch == '\n')
    {
        n++; 
    }

}


Ty si povodne chcela oddelovat slova nulovym znakom ( i ked nespravnym sposobom ), bolo to tak v zadani, alebo to bol tvoj zamer? Lebo potom by si mohla pouzit trebars pole stringov ( kedze aj pri vypisovani sa string vypisuje pokial sa nenarazi na nulovy znak, cize dalsie retazce by sa nevypisali ).


Offline

Užívateľ
Užívateľ
C naplnenie pola

Registrovaný: 15.10.11
Prihlásený: 07.03.12
Príspevky: 13
Témy: 6
Príspevok Napísal autor témyOffline : 11.12.2011 14:43

No vlastne kazda polozka v poli by malo byt jedno slovo, preto som tam chcela dat ze aby bolo zakoncenie kazdeho slova '\0', zadani ale nic take neni

// pridané po 15 minútach od posledného príspevku

S tym kodom to uz funguje, dakuejm Akurat teraz zase neviem, ako sa dostanem k jednotlivym slovam, teda da sa to vobec? Kebyze tie slova chcem zapisat do dalsieho suboru, tak takto to funguje :
kód:
Kód:
fwprintf(f2, L"%ls", slovo);



Ale ako sa dostanem napriklad k tretiemu slovu? Lebo tie slova budem musiet radit podla abecedy, tak sa k nim musim dostat jednotlivo... Alebo teda zatial celkovo zapis po jednom, nieco v style :
kód:
Kód:
for (i = 0; i < n; i++)
{
  fwprintf(f2, L"%ls", slovo[i];
}

Konkretne toto mi hadze Segmentation fault...


Offline

Skúsený užívateľ
Skúsený užívateľ
C naplnenie pola

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 11.12.2011 15:34

xyzz píše:
Ale ako sa dostanem napriklad k tretiemu slovu? Lebo tie slova budem musiet radit podla abecedy


Jednoducho - miesto hladania nuly v retazci budes hladat znak '\n'. Cize ak hladas tretie slovo, budes v cykle hladat 2-krat znak '\n' ( prve_slovo - \n - druhe_slovo - \n - tretie_hladane_slovo ).

xyzz píše:
Kód:
for (i = 0; i < n; i++)
{
  fwprintf(f2, L"%ls", slovo[i];
}

Konkretne toto mi hadze Segmentation fault...


To preto, lebo slovo je typu wchar_t, nie wchar_t* aky ocakava funkcia. Slovo je typu wchar_t*, lenze polozky pola ( cize slovo[akekykolvek_index] ) uz su iba wchar_t.


Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. naplnenie toneru

v Externé zariadenia

2

1442

20.02.2008 11:20

stulislav Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. uvolnenie pola

v Assembler, C, C++, Pascal, Java

8

478

10.01.2010 20:18

johny3212 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dlžka pola

v HTML, XHTML, XML, CSS

2

539

16.10.2009 22:40

dessert Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. INDEX POLA

v JavaScript, VBScript, Ajax

1

661

15.10.2009 11:39

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vrátenie pola

v Assembler, C, C++, Pascal, Java

2

444

08.11.2012 19:01

faraon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Počítanie záznamov poľa

v Delphi, Visual Basic

10

1092

22.12.2007 21:34

martin90 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prehladavanie viacrozmerneho pola

v PHP, ASP

4

435

13.10.2007 23:13

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Presun prvkov pola

v Assembler, C, C++, Pascal, Java

2

371

18.10.2012 1:51

Gregi555 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Upravenie vypisu pola ..

v PHP, ASP

3

447

01.07.2009 17:05

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. spravnost input pola

v PHP, ASP

2

366

20.06.2010 15:14

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena klucov pola

v PHP, ASP

7

560

08.05.2009 15:28

Roko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zoradenie asociativneho pola

v PHP, ASP

3

633

14.04.2010 12:04

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Identifikácia prvku poľa

v PHP, ASP

4

564

12.03.2009 22:49

cube2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vkladanie do pola

v PHP, ASP

2

379

17.01.2009 15:29

zaciatocnik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nasobenie pola Pascal

v Assembler, C, C++, Pascal, Java

8

472

15.06.2013 22:47

dany2281995 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. inicializacia viacrozmerneho pola

v PHP, ASP

15

867

02.09.2008 10:15

toma-mato Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra