Sekcia o programovaní, programovacích jazykoch...
marko365
Nový používateľ
Príspevky: 90 Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov
Príspevok
od používateľa marko365 » Pi 21. Jan, 2011, 19:41
Ako ukladat premenne z jedneho riadku odelene medzerov do samostatnych arrayov.
pEpinko
Používateľ
Príspevky: 850 Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR
Príspevok
od používateľa pEpinko » Pi 21. Jan, 2011, 22:12
Co? Mohol by si dat nejaky priklad?
marko365
Nový používateľ
Príspevky: 90 Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov
Príspevok
od používateľa marko365 » So 22. Jan, 2011, 11:49
Mam na mysli ze z konzoloveho okna mam vstup nasledovny : 1 2 3 4 5 6 7 8 9 0
a toto mam zapisat do poly[0] [1] [2]...Alebo ako to mam ulozit do int bez medzier.
crux2005
VIP
Príspevky: 10051 Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky
Príspevok
od používateľa crux2005 » So 22. Jan, 2011, 12:19
Pomocou getchar() načítaš vstup, ak to nie je medzera (je to číslo) => uložíš a prevedieš na int napr. pomocou atoi a keď to je isspace, tak to preskočíš a budeš ďalej čítať vstup po EOF. Následné ukladanie už snáď zvládneš.
s pozdravom, crux.
pEpinko
Používateľ
Príspevky: 850 Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR
Príspevok
od používateľa pEpinko » So 22. Jan, 2011, 13:02
Podla mna najelegantnejsie je to pomocou strtok.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 1000
int main()
{
char *buf = (char*)malloc(sizeof(char) * BUFFER_SIZE);
int *poly = NULL;
int n = 0;
gets(buf);
char *ptr;
ptr = strtok (buf, " ");
while (ptr != NULL)
{
n++;
poly = realloc(poly, n * sizeof(int));
poly[n - 1] = atoi(ptr);
ptr = strtok (NULL, " ");
}
for (int i = 0; i < n; i++)
{
printf("%d \n", poly);
}
free(buf);
return 0;
}
marko365
Nový používateľ
Príspevky: 90 Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov
Príspevok
od používateľa marko365 » So 22. Jan, 2011, 13:51
Ja som zaciatocnik tak trosku vysvetlit ze ako to napisat a co to presne robi by sa nedalo.
pEpinko
Používateľ
Príspevky: 850 Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR
Príspevok
od používateľa pEpinko » So 22. Jan, 2011, 14:27
Nerozumies tej funkcii strtok, alebo tomu ostatnemu. Lebo tie malloci a realloci tam v principe byt nemusia.
char *buf = (char*)malloc(sizeof(char) * BUFFER_SIZE);
je skoro to iste ako (ono je to vlastne dost rozne, ale ak nevies co je malloc, tak ti to moze byt jedno)
char buf[BUFFER_SIZE];
crux2005
VIP
Príspevky: 10051 Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky
Príspevok
od používateľa crux2005 » So 22. Jan, 2011, 16:37
pEpinko napísal: Podla mna najelegantnejsie je to pomocou strtok.
delimiters ma napadly, ale strtok nie
napriek tomu, že je to 'najelegatnejšie' riešenie, je otázne, či môžu použiť strtok
a takisto či je to spôsob riešenia ktoré by dokázal nakódiť
s pozdravom, crux.
pEpinko
Používateľ
Príspevky: 850 Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR
Príspevok
od používateľa pEpinko » So 22. Jan, 2011, 16:48
Suhlasim, nicmenej objavit zaujimave funkcie v C standard library je vzdy poucne
. (vela ich tam neni...)
crux2005
VIP
Príspevky: 10051 Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky
Príspevok
od používateľa crux2005 » So 22. Jan, 2011, 16:54
strtok nie je pre mňa nejaká neznáma funkcia, použil som ju, ale už dávnejšie
preto hneď nemusí človeka napadnúť, najmä keď sa to dá aj inak riešiť
s pozdravom, crux.
pEpinko
Používateľ
Príspevky: 850 Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR
Príspevok
od používateľa pEpinko » So 22. Jan, 2011, 17:29
Teraz nejak nechapem. To je adresovane mne? Ja som len chcel napisat ine riesenie ako tvoje. A nakoniec som poznamenal, ze urcite autorovi nezaskodi si pozriet tych malo uzitocnych funkcii, ktore v C library su.
crux2005
VIP
Príspevky: 10051 Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky
Príspevok
od používateľa crux2005 » So 22. Jan, 2011, 17:42
tak sme sa obaja nejako nepochopili
s pozdravom, crux.
marko365
Nový používateľ
Príspevky: 90 Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov
Príspevok
od používateľa marko365 » Ne 23. Jan, 2011, 00:02
Pani, vsetko ohlado c sa chcem naucit takze viac moznosti mi neprekaza.
A mohol by mi niekto vysvetlit to "eof" to je 'end of file'.
crux2005
VIP
Príspevky: 10051 Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky
Príspevok
od používateľa crux2005 » Ne 23. Jan, 2011, 01:27
áno, EOF je end of file = -1 (int)
a keď chceš nejaké info o štd. funkciách C/C++, odporúčam:
http://www.cplusplus.com/
s pozdravom, crux.
marko365
Nový používateľ
Príspevky: 90 Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov
Príspevok
od používateľa marko365 » Ne 23. Jan, 2011, 15:54
Takze eof mi zmenzi int o 1.