| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 15.10.11 Prihlásený: 07.03.12 Príspevky: 13 Témy: 6 | Napísal xyzz: 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; } }
|
|
Registrovaný: 11.01.09 Prihlásený: 25.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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 ).
|
|
Registrovaný: 15.10.11 Prihlásený: 07.03.12 Príspevky: 13 Témy: 6 | Napísal autor témy xyzz: 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...
|
|
Registrovaný: 11.01.09 Prihlásený: 25.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| naplnenie toneru v Externé zariadenia | 2 | 1442 | 20.02.2008 11:20 stulislav | | uvolnenie pola v Assembler, C, C++, Pascal, Java | 8 | 478 | 10.01.2010 20:18 johny3212 | | dlžka pola v HTML, XHTML, XML, CSS | 2 | 539 | 16.10.2009 22:40 dessert | | INDEX POLA v JavaScript, VBScript, Ajax | 1 | 661 | 15.10.2009 11:39 Ďuri | | vrátenie pola v Assembler, C, C++, Pascal, Java | 2 | 444 | 08.11.2012 19:01 faraon | | Počítanie záznamov poľa v Delphi, Visual Basic | 10 | 1092 | 22.12.2007 21:34 martin90 | | Prehladavanie viacrozmerneho pola v PHP, ASP | 4 | 435 | 13.10.2007 23:13 stenley | | Presun prvkov pola v Assembler, C, C++, Pascal, Java | 2 | 371 | 18.10.2012 1:51 Gregi555 | | Upravenie vypisu pola .. v PHP, ASP | 3 | 447 | 01.07.2009 17:05 stenley | | spravnost input pola v PHP, ASP | 2 | 366 | 20.06.2010 15:14 Ďuri | | zmena klucov pola v PHP, ASP | 7 | 560 | 08.05.2009 15:28 Roko | | Zoradenie asociativneho pola v PHP, ASP | 3 | 633 | 14.04.2010 12:04 stenley | | Identifikácia prvku poľa v PHP, ASP | 4 | 564 | 12.03.2009 22:49 cube2 | | vkladanie do pola v PHP, ASP | 2 | 379 | 17.01.2009 15:29 zaciatocnik | | nasobenie pola Pascal v Assembler, C, C++, Pascal, Java | 8 | 472 | 15.06.2013 22:47 dany2281995 | | inicializacia viacrozmerneho pola v PHP, ASP | 15 | 867 | 02.09.2008 10:15 toma-mato |
| 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
|
|