| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 14.11.10 Prihlásený: 30.04.12 Príspevky: 13 Témy: 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| |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 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 ) 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 );
|
|
Registrovaný: 14.11.10 Prihlásený: 30.04.12 Príspevky: 13 Témy: 4 Bydlisko: MT |
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| |
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| problem s dynamickou IP v Siete | 12 | 630 | 21.07.2008 21:26 Tomas1 | | Player na Webe s dynamickou velkosťou v HTML, XHTML, XML, CSS | 11 | 535 | 15.08.2008 17:35 Tominator | | PC zostava 2000€ práca s videom, programovanie, práca v photoshope atď... [ Choď na stránku: 1, 2 ] v PC zostavy | 37 | 1790 | 25.01.2017 9:44 Xaltotun | | Ako zdielat live stream s dynamickou ip adresou v Siete | 4 | 655 | 13.12.2015 19:46 chrono | | delete char* v Assembler, C, C++, Pascal, Java | 4 | 408 | 17.11.2012 20:04 m4r14n | | C++ problem s char v Assembler, C, C++, Pascal, Java | 4 | 421 | 07.10.2012 18:52 Fico | | char pole do int v Assembler, C, C++, Pascal, Java | 0 | 350 | 19.01.2011 22:38 1daemon1 | | Zmena char na int v Assembler, C, C++, Pascal, Java | 6 | 507 | 02.02.2012 23:18 street_punk | | mer. char.zenerovej diody v Elektronika | 0 | 486 | 10.01.2012 20:34 p4tooo | | Banalny priklad-char. tranzistora v Elektronika | 10 | 1117 | 07.03.2007 12:43 Taomas | | C Int to Char v Assembler, C, C++, Pascal, Java | 2 | 322 | 20.10.2012 15:13 faraon | | odelenie num a char v PHP, ASP | 2 | 342 | 10.11.2009 20:22 pilná lama glama | | C - konverzia char na int v Assembler, C, C++, Pascal, Java | 14 | 677 | 02.04.2011 18:16 M4rek | | testovanie prvku pola char [C++] v Assembler, C, C++, Pascal, Java | 6 | 474 | 06.07.2010 8:09 koso | | C: z getchar() do char *retazec v Assembler, C, C++, Pascal, Java | 9 | 989 | 08.10.2010 11:54 Blackshadow | | Update stĺpca char cez regulárny výraz v Databázy | 2 | 660 | 29.10.2011 16:40 camo |
| 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
|
|