IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nejde otevřít soubor.

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Pavel
Člen
Avatar
Pavel:24.11.2012 17:19

Zdravím, dělám program, který otevře soubor, uloží ho do dynamického pole a poté jej odtud přečte a vypíše na obrazovku. Když můj program spustím, tak mi hlásí, že soubor nejde otevřít. Už si s tím nevím rady, prosím pomozte. V programování v C jsem začátečník. Předem díky.
Můj kód:

#include <stdlib.h>
#include <stdio.h>
#define PUL_ROZSAH(typu) (1L<<(sizeof(ty­pu)*8-1))
#define ROZSAH(typu) PUL_ROZSAH(ty­pu)+(PUL_ROZSAH(ty­pu)-1)

char* load(char * filename, unsigned long *ukSize)
{
FILE *soubor;
char *pole;

soubor = fopen(filename, "rb");
if(soubor == NULL)
{
printf("Soubor se nepodarilo otevrit.\n");
return 0;
}
fseek(soubor, 0L, SEEK_END);
*ukSize = ftell(soubor);
rewind(soubor);

if(*ukSize > ROZSAH(unsigned int))
{
printf("Nelze alokovat tolik pameti. Soubor je prilis velky.\n");
return 0;
}

pole = (char*) malloc(*ukSize);

if(pole != NULL)
{
printf("Alokace probehla uspesne.");
}
fread(pole, sizeof(char), *ukSize, soubor);
fclose(soubor);
return pole;
}

int main (int argc, char * argv[])
{
unsigned long int size;
char * p, * jmenoSouboru;

printf("Nacteni souboru do dynamickeho pole\n"
"---------------------------------------\n");
p = load(jmenoSouboru, &size);
if(p != NULL)
{
printf("\nVypis souboru:\n\n %s \n", p);
}
return 0;
}

Editováno 24.11.2012 17:22
 
Odpovědět
24.11.2012 17:19
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Pavel
David Hartinger:26.11.2012 13:28

Když vložíš kód pomocí tlačítka na vložení zdrojových kódů, tak z něj někdo možná i něco vyčte...

Nahoru Odpovědět
26.11.2012 13:28
New kid back on the block with a R.I.P
Avatar
Pavel
Člen
Avatar
Pavel:26.11.2012 13:53

Dobře, pro příště. ;-) Jinak už jsem na to přišel. :-)

 
Nahoru Odpovědět
26.11.2012 13:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.