[ 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 | 4
Bydlisko: MT

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 | 3
NapísalOffline : 30.04.2012 8:38 | Práca s dynamickou pamäťou v char

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 | 4
Bydlisko: MT
Napísal autor témyOffline : 30.04.2012 14:10 | Práca s dynamickou pamäťou v char

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|
 [ Príspevkov: 3 ] 


Práca s dynamickou pamäťou v char



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

663

21.07.2008 21:26

Tomas1

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

558

15.08.2008 17:35

Tominator

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

1909

25.01.2017 9:44

Xaltotun

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

Ako zdielat live stream s dynamickou ip adresou

v Siete

4

707

13.12.2015 19:46

chrono

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

delete char*

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

4

444

17.11.2012 20:04

m4r14n

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

Banalny priklad-char. tranzistora

v Elektronika

10

1161

07.03.2007 12:43

Taomas

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

C Int to Char

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

2

353

20.10.2012 15:13

faraon

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

odelenie num a char

v PHP, ASP

2

374

10.11.2009 20:22

pilná lama glama

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

C++ problem s char

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

4

457

07.10.2012 18:52

Fico

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

char pole do int

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

0

379

19.01.2011 22:38

1daemon1

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

Zmena char na int

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

6

542

02.02.2012 23:18

street_punk

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

mer. char.zenerovej diody

v Elektronika

0

516

10.01.2012 20:34

p4tooo

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

testovanie prvku pola char [C++]

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

6

512

06.07.2010 8:09

koso

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

C - konverzia char na int

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

14

706

02.04.2011 18:16

M4rek

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

699

29.10.2011 16:40

camo

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

1026

08.10.2010 11:54

Blackshadow



© 2005 - 2024 PCforum, edited by JanoF