Anonymní profil Kuba-$ – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Kuba-$ – Programujte.comAnonymní profil Kuba-$ – Programujte.com

 

Příspěvky odeslané z IP adresy 85.132.224.–

C / C++ › Dvojité otevření souboru
2. 5. 2008   #72845

Zdravím, prosím vás,
1) potřebuju číst ze souboru. Jenže potřebuju z něho číst dvakrát po sobě.
Jak to mám provést? to ten soubor mám otevřít a zavřít dvakrát?
2) A kdybych potřeboval zjistit nejdříve počet řádků v souboru, a poté z něj číst, tak to mám provést jak?

C / C++ › realloc()
16. 12. 2007   #58653

Nakonec jsem to udelal takhle:

v mainu mam toto



int al = 4;
TOsoba *seznam=(TOsoba*)malloc(al*sizeof(TOsoba));

nacti(fin, seznam, &al, &pocetid);

v ve funkci nacti musim toto pole zvetsovat


int nacti(FILE *fin, TOsoba *seznam, int *al, int *pocetid)
{
int id;
id = *pocetid;

if (id == *al) { // pocet prvku se rovna maximalnimu poctu v poli -> proto realokace
*al *= 2; // realokuju pamet na dvojnasobek
seznam = (TOsoba*) realloc(seznam,(*al) * sizeof(TOsoba));
}

ale mam problem. na prvni 4 hodnoty se mi uklada vsechno spravne.
ale potom, az provedu realokaci, tak se mi misto hodnot ukladaji(a zobrazuji) adresy...

co s tim?

pro presnost. na 6 radku jsem vlozil to same a ve vysledku se mi zobrazuje toto:




JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5

JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5

JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5

JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5

JMENO: 6488068 524681 2090322144 PRIJMENI: 1394631790 1769239653 15510669
90 POHLAVI: 0
MAJETEK: DLUH:

JMENO: 0 0 0 PRIJMENI: 538976288 538976288 538976288 POHLAVI: 538968064
MAJETEK: ► DLUH: ► ► ►

C / C++ › plati, ze ... ?
15. 12. 2007   #58616

To Jonyzz :

díky

C / C++ › realloc()
15. 12. 2007   #58606

prosim vas, jak se pouziva funkce realloc?

mam strukturu:



typedef struct tosoba
{
int jmeno[POCPISM+1];
int prijmeni[POCPISM+1];
int pohlavi[2];
char majetek;
char dluh;
} TOsoba;


a pole


int al = 5;
TOsoba *seznam=(TOsoba*)malloc(al*sizeof(TOsoba));


a ted to potrebuju zvetsit. jak to provedu?
 

int alok = al *2;

TOsoba* realloc(TOsoba *seznam, alok);

???
ale pise mi to tyto chyby:


syntax error before "alok"



conflicting types for 'realloc'


C:/DevCpp/include/stdlib.h:347: error: previous declaration of 'realloc' was here

C / C++ › pole struktur
14. 12. 2007   #58503

vyřešeno

Kuba-$
C / C++ › vstup matice
26. 11. 2007   #56198

To tmi : Dík, zkusím to. Snad to tak budu moci udelat. Mame totiz ve funkcich ruzna omezeni. Mimochodem. jde to taky pres fgets() ? Zda se mi to podobne, tyto 2 funkce.

Abych to lepe pochopil,jak to mam naprogramovat,predvedu kousek kodu:



#define MAX 1000
char str[MAX];
int pole[MAX];
int cislo;

while (fgets(str, MAX, soubor) != NULL) {
for (int i = 0, i < MAX, i++) {
while (str[i] != '\n' && str[i] != '\t') {
cislo = cislo * 10 + str[i];
}
pole[i] = cislo;
}
}


Pochopil jsem to dobre? je to takhle spravne?

Kuba-$
C / C++ › vstup matice
25. 11. 2007   #56166

JESTE JEDEN DOTAZ:
kdyz nacitam hodnoty ze souboru,
potrebuju ulozit a napsat na vystup jen jeden radek.

davam:



while (scanf("%i", & vstup) != '\n') // s EOF to funguje
printf("%i ", vstup);

ale nejede mi to :-(

Kuba-$
C / C++ › Kontrola vstupu
19. 11. 2007   #55298

To nickJartin : Díky, ale mi to nějak nefunguje :-(
zadávám tohle:



double vstup;
int a;

while (a = fscanf(stdin, "%lf", &vstup) != EOF) {

if (a != 1) {
printf("CHYBA: a = %i\n", a);
exit(1);
}

printf("a = %i\n", a);
//.......pokracovani ve vypoctu

a ono mi to nereaguje. Porad to pise ze a=1 a program jede dal a cykli se :-( co s tim?

Kuba-$
C / C++ › Kontrola vstupu
18. 11. 2007   #55200

Zadávám na vstup hodnoty které čtu pomocí fscanf(stdin, "%lf", &vstup).
Proměnná vstup je DOUBLE.
Jak zjistim zda je na vstupu vážně číslo a ne ještě jiný znak?
Potřebuju rozlišit tyto hodnoty: (např)
23.2 - dobře zadáno (mohu pokračovat)
5a6 -špatně zadáno (chyba)
aabvs -špatně zadáno (chyba)
0.00p -špatně zadáno (chyba)

Jak se to dá jednoduše zjistit?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý