reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

C nacitani pres fgetwc

Salamander (6177)|14.12.2011 12:19
Hele, nemuzu prijit na to co delam spatne ...
chary to nacita, ale pri vypisu se nic neobjevi :( vidim to tak, ze blbe pracuju s tema stringama, ale konkretni problem nikde nevidim :cry

[code]
FILE *file;
file = fopen(soubor, "r");
if (file == NULL)
return FAIL;

wchar_t *polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
wchar_t *tmp;
wint_t znak;
int chread = 0;

while ((znak = fgetwc(file)) != WEOF)
{
chread++;
if(znak == L'\n')
{
polozka[chread] = L'\0';
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);
chread = 0;
polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
}
else{
tmp = malloc((chread+1) * sizeof(wchar_t));
if (tmp == NULL)
return FAIL;
wcscpy(tmp, polozka);
free(polozka);
polozka = tmp;
polozka[chread] = znak;
}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]

Ze souboru to ma po radcich nacitat jmena /stringy s predem neurcenou velikosti
gabera (64)|14.12.2011 15:26
Mi to zafungovalo i s výpisem, pokud jsem provedl opravy označené znaky *********:


[quote=Salamander;485909]Hele, nemuzu prijit na to co delam spatne ...

int chread = 0; *********************************opravit: int chread = -1;

while ((znak = fgetwc(file)) != WEOF)
{
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);

chread = 0; *********************opravit: chread = -1;

}
else{
return FAIL;

wcscpy(tmp, polozka); ******** opravit: wcsncpy(tmp, položka, chread);


free(polozka);

}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]

[/quote]


Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).
Salamander (6177)|14.12.2011 15:59
[quote=gabera;485932]Mi to zafungovalo i s výpisem, pokud jsem provedl opravy označené znaky *********:





Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).[/quote]

Jo, diky moc, ja vedel ze je nejakej problem s tema indexama :D

Jestli chces neco vysvetlit, klidne napis, teorii zvladam, praxe je horsi :D
Salamander (6177)|14.12.2011 19:01
Tak to jeste chtelo trosku poopravt, ale uz me to bezi jak ma, kod jsem klidne hodim potom cely, ale zatim to bohuzel nejde ;)
Salamander (6177)|7.2.2012 15:34
No, jestli to jeste nekoho zajima, uz jsem muzu dat cely zdrojak :D
Radi to abecedne textaky (delany na jmenny seznamy), podpora loc je trosku sporadicka ... ale jinak to snad i funguje :D Vcetne te dynamicke alokace :)

http://dl.dropbox.com/u/20809963/Projekty%20C/proj4/proj4.c
Salamander (6177)|9.2.2012 17:17
Jo, jenom upozorním, že pokud to někdo hodlá použít jako školní projekt (teď mluvím ke studentů VUT, kteří to určitě eventuálně najdou), tak plagiáty se kontrolují, a 100% by to odhalili, a já opravdu mám lepší věci na práci, než chodit k disciplinárnímu řízení zjišťovat, jestli je to můj kód, nebo ne ...

Navíc je tam přidaná malá chybička v té tabulce řadící funkce, takže to neodpovídá české normě :)

Každopádně je to k dispozici maximálně pro inspiraci, doufám, že to chápete :)