Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Práca s dynamickou pamäťou v char

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4
Bydlisko: MT
Príspevok NapísalOffline : 29.04.2012 22:17

Zdravíčko, vedel by mi niekto poradiť ako spraviť jednoduchý program ktorý načíta znaky zo súboru po koniec riadku, vypíše celý reťazec, nastaví kurzor na nový riadok a takto opakuje až po EOF...a aby to bolo cez dynamickú pamäť čiže cez napríklad char* string

ja som to skúšal cez statický char help ale ani tak mi to neide



Kód:
#include <stdio.h>


int main()
{

    char* string;
    char help[1000];
    FILE *fr;
    int a = 0;

    if((fr = fopen("DATA.txt", "r")) == NULL)
    {
        printf("Subor sa nepodarilo otvorit");
        return 1;
    }

    while ((help[a++] = getc(fr)) != EOF)
    {
        if (help[a] == '\n')
        {
            help[a + 1] = '\0';
            a = 0;
            printf("%s", help);
        }
    }

    if (fclose(fr) == EOF)
    {
        printf("Subor sa nepodarilo zatvorit");
        return 1;
    }


}




ako to teda spraviť cez char* ?? Ďakujem







_________________
|ASUS-N53SN|i7-2630QM Sandy Bridge|6GB DDR3 1333 MHz|GeForce GT550m 2GB VRAM|OCZ Agility 3 120GB SSD|
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 30.04.2012 8:38

Zadeklaruješ si to takto:
Kód:
char * help = (char *) malloc ( 256 * sizeof(char) );

(Plus, pridáme #include <stdlib.h>)

A potom s tým už normálne pracuješ. To čo tam máš napísané je zle. Nemôžeš a inkrementovať už tam, kde ho inkrementuješ, pretože sa tak nikdy nesplní nasledujúca podmienka (teda, technicky, niekedy možno áno, ale nie v tomto príklade :P )

Ak by to bolo takto, tak by to už skoro fungovalo:
Kód:
while ((help[a] = getc(fr)) != EOF)
    {
        if (help[a] == '\n')
        {
            help[a + 1] = '\0';
            a = 0;
            printf("%s", help);
        }
        else
            a ++;
    }


Len cyklus skončís skôr, ako sa stihne vypísat posledný riadok. Skús sa s tým ešte nejako pohrať, nech to funguje poriadne :) (A nie, nedopíš za while jeden printf)

A nakoniec samozrejme nezabudnime pamäť uvoľniť volaním
Kód:
free ( help );


Offline

Užívateľ
Užívateľ
Práca s dynamickou pamäťou v char

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4
Bydlisko: MT
Príspevok Napísal autor témyOffline : 30.04.2012 14:10

Diki moc takto som to potreboval :)







_________________
|ASUS-N53SN|i7-2630QM Sandy Bridge|6GB DDR3 1333 MHz|GeForce GT550m 2GB VRAM|OCZ Agility 3 120GB SSD|
Odpovedať na tému [ Príspevkov: 3 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. problem s dynamickou IP

v Siete

12

630

21.07.2008 21:26

Tomas1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Player na Webe s dynamickou velkosťou

v HTML, XHTML, XML, CSS

11

535

15.08.2008 17:35

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PC zostava 2000€ práca s videom, programovanie, práca v photoshope atď...

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PC zostavy

37

1790

25.01.2017 9:44

Xaltotun Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako zdielat live stream s dynamickou ip adresou

v Siete

4

655

13.12.2015 19:46

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delete char*

v Assembler, C, C++, Pascal, Java

4

408

17.11.2012 20:04

m4r14n Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ problem s char

v Assembler, C, C++, Pascal, Java

4

421

07.10.2012 18:52

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. char pole do int

v Assembler, C, C++, Pascal, Java

0

350

19.01.2011 22:38

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena char na int

v Assembler, C, C++, Pascal, Java

6

507

02.02.2012 23:18

street_punk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mer. char.zenerovej diody

v Elektronika

0

486

10.01.2012 20:34

p4tooo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Banalny priklad-char. tranzistora

v Elektronika

10

1117

07.03.2007 12:43

Taomas Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C Int to Char

v Assembler, C, C++, Pascal, Java

2

322

20.10.2012 15:13

faraon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. odelenie num a char

v PHP, ASP

2

342

10.11.2009 20:22

pilná lama glama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C - konverzia char na int

v Assembler, C, C++, Pascal, Java

14

677

02.04.2011 18:16

M4rek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. testovanie prvku pola char [C++]

v Assembler, C, C++, Pascal, Java

6

474

06.07.2010 8:09

koso Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C: z getchar() do char *retazec

v Assembler, C, C++, Pascal, Java

9

989

08.10.2010 11:54

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Update stĺpca char cez regulárny výraz

v Databázy

2

660

29.10.2011 16:40

camo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra