Soubor v C dynamicke pole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Soubor v C dynamicke pole – C / C++ – Fórum – Programujte.comSoubor v C dynamicke pole – C / C++ – Fórum – Programujte.com

 

17. 4. 2011   #1
-
0
-


Zdravím všechny, už asi dva dny, se snažím vyřešit problém. Dnes

jsem narazil na tohle forum, a tak jsem si říkal, proč můj problém

sem nenapsat. Takže problém spočívá v tom, že chci udělat program,

ktery načte soubor, a ten celý soubor, bych chtěl nacpat do

dynamického pole, v mojem případě (pole) no a jak ho do toho pole

dám, tak bych se v něm chtěl pohybovat, pomoci ukazatele, teda když

zapíšu *pole = 4; celé pole se přesune na 4 prvek v souboru a

pak si ho vypíšu printf("%c",pole); dělám dynamické pole poprvé

teprve těd jsme ho začali brát ve škole
zde je zdroják se kterým mám problém
vypíše jenom znaky co se nachází v souboru a vypíše jeho

velikost... ignorujte řádky pozice kurzoru atd. je to jenom test
v budoucnu bych se chtěl v tom souboru pohybovat, a přídávat

prvky, na určenou pozici v souboru kterou si určím sám.
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *soub;
char pocet=0;
char znak=0;
int pozice=0;
int i=0;
int m=0;
char* pole=NULL;
soub = fopen("pole.txt","r");
if(soub==NULL)
{
printf("soubor se neotevrel");
return 0;
}
printf("nachazi se v souboru\n");
do
{
znak=fscanf(soub,"%c",&pocet);
m++;
printf("%c\t",pocet);
}while(!feof(soub));
printf("\npocet bajtu %d\n",m);
pole = (char*)malloc(m*sizeof(char));
fseek(soub,0L,SEEK_SET);
pozice = ftell(soub);
printf("%d",pozice);
if(!pole)
{
printf("neni misto");
}
m=0;
do
{
fscanf(soub,"%c",&znak);
m++;
pole[m]=znak;
printf("%c",pole[m]);
}while(!feof(soub));

fclose(soub);
return 0;
}


PS:budu rád za každou odpověď :)
předem děkuji :P

Nahlásit jako SPAM
IP: 77.48.106.–
Proxymus0
Stálý člen
18. 4. 2011   #2
-
0
-

použij fgetc() a ne fscanf(), ten přeskakuje bílé znaky a vůbec, zjištění velikosti souboru lze provést mnohem jednodušeji než tou tunou balastu co tam máš, zkus vymyslet nebo pogooglit něco jinčího ;)

Nahlásit jako SPAM
IP: 147.229.214.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Ne/dynamicke pole — založil cecilconrad

Dynamicke pole — založil george6565

Dynamicke pole — založil Earl Cash

Dynamicke pole na string — založil mustafa

Moderátoři diskuze

 

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