[ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.10.10
Prihlásený: 28.10.12
Príspevky: 41
Témy: 9 | 9
NapísalOffline : 26.04.2011 17:03 | nacitanie obsahu suboru do pola v C

Zdravim, v subore mam znaky v tvare obdlznika a potreboval by som ich nacitat do dvojrozmerneho pola, pri tejto konstrukcii to funguje:

Kód:
     int j=0;
     char pole[20][20];
   
     FILE *f;                       
     f = fopen("labyrint.txt", "r");
   
    while(fscanf(f,"%s",pole[j]) != EOF){
          j++;             
    }

    fclose(f);


Problem nastane, ked sa v kode nachadza medzera - v tom pripade to pravdaze neprecita ako retazec... Vedel by mi niekto s tymto pomoct? Rozmyslal som nad niecim takymto:

Kód:
     int j=0;
     int i = 0;
     char pole[20][20];
   
     FILE *f;                       
     f = fopen("labyrint.txt", "r");
   
    while(fscanf(f,"%c",pole[j]) != EOF){
          if(pole[j][i] == "\n"){
             j++;
             i = 0;
             }
          i++;             
    }

    fclose(f);


Ale toto nefunguje...Neviem, co s tym. Dakujem za pomoc.


Offline

Skúsený užívateľ
Skúsený užívateľ
nacitanie obsahu suboru do pola v C

Registrovaný: 11.01.09
Prihlásený: 02.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.04.2011 8:47 | nacitanie obsahu suboru do pola v C

Kód:
while(fscanf(f,"%c",pole[j]) != EOF)

pole[j] je typu char* a ocakava sa char. Takze nacita sa iba jeden znak. Skusal si to zemnit takto:

Kód:
while(fscanf(f,"%c",pole[j][i]) != EOF)
? Lebo hned po tom robis kontrolu: pole[j][i] == "\n"

Potom si uprav v tomto:
Kód:
if(pole[j][i] == "\n"){
             j++;
             i = 0;
             }
          i++;

i = 0; zmen na i = -1. Lebo hned ako vyjdes z bloku sa inkrementuje i z nuly na jednotku, cize prvy index pola ( lepsie povedane nulty ) bude nevyuzity.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.10.10
Prihlásený: 28.10.12
Príspevky: 41
Témy: 9 | 9
Napísal autor témyOffline : 27.04.2011 10:59 | nacitanie obsahu suboru do pola v C

pri

Kód:
if(pole[j][i] == "\n")


mi to vyhodi error:

ISO C++ forbids comparison between pointer and integer :(


Offline

Skúsený užívateľ
Skúsený užívateľ
nacitanie obsahu suboru do pola v C

Registrovaný: 11.01.09
Prihlásený: 02.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 27.04.2011 11:16 | nacitanie obsahu suboru do pola v C

zmen na:
Kód:
if(pole[j][i] == '\n')


"\n" - je retazec
'\n' - je znak


_________________
Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.10.10
Prihlásený: 28.10.12
Príspevky: 41
Témy: 9 | 9
Napísal autor témyOffline : 27.04.2011 14:15 | nacitanie obsahu suboru do pola v C

dakujem, skompilovat to uz ide, lenze ihned po spusteni spadne. V pripade, ze v podmienke cyklu while dam len pole[j] popr. pole, tak to nespadne, ale do pola sa nakopiruje len prvz znak.

// pridané po 2 hodinách 36 minútach od posledného príspevku

tak som to upravil takto:
Kód:
    int j = 0;
    int i = 0;

    ifstream f ("labyrint.txt", ifstream::in);
   
    char znak;

    while(f >> znak){
     if(znak == '\n'){
             j++;
             i = -1;
          }
          pole[j][i] = znak;
          i++;
    }

    f.close();


tentokrat to nespadne, ale vobec mi nebere zo suboru medzery...


Offline

Skúsený užívateľ
Skúsený užívateľ
nacitanie obsahu suboru do pola v C

Registrovaný: 11.01.09
Prihlásený: 02.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 28.04.2011 10:39 | nacitanie obsahu suboru do pola v C

Neviem, preco si zrazu presiel na C++ no ale fajn. Uprav si riadok, kde citas znak takto:
Kód:
while( f >> noskipws >> znak )


A tento krat mas opat zle indexovanie pola. Takze v tomto priapde uprav i = -1; na i = 0;. Musis si sledovat, aky index ti zacina, ked pracujes s polom.


 [ Príspevkov: 6 ] 


nacitanie obsahu suboru do pola v C



Podobné témy

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

nacitanie obsahu suboru

v PHP, ASP

4

1073

13.02.2009 17:55

_fortes_

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

nacitanie obsahu suboru do premennej

v JavaScript, VBScript, Ajax

9

1138

05.03.2008 13:45

stenley

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

Načítanie obsahu

v HTML, XHTML, XML, CSS

11

827

12.12.2010 15:40

evryl

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

Načítanie do poľa

v PHP, ASP

6

487

07.02.2008 21:32

xxxmiroxxx

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

nacitanie obsahu php

v PHP, ASP

2

800

20.09.2010 17:06

elo

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

Nacitanie obsahu PHP subora na serveri

v PHP, ASP

4

465

25.12.2010 23:44

Blackshadow

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

Nacitanie suboru

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

5

631

23.08.2014 21:35

nasm

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

Nacitanie CSS suboru

v PHP, ASP

12

815

28.02.2008 20:58

Tominator

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

postgresql nacitanie suboru

v Databázy

6

661

15.08.2012 19:13

zdeniatqo

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

[C] Výpis zo súboru do pola

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

2

474

05.11.2012 20:53

ado130

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

nacitanie suboru s adresaru

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

3

731

25.11.2010 15:00

ado21

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

Načítanie kódu HTML z iného súboru

v HTML, XHTML, XML, CSS

11

2467

23.02.2020 21:58

JanoF

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

[Pascal] - písanie do .txt súboru s ponechaním predchodzieho obsahu

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

11

539

19.05.2016 9:37

Miso122

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

[C]funkcie, nacitanie a porovnanie zo suboru

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

6

1402

31.03.2015 17:47

dany2281995

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

efektivne nacitanie suboru do pamati v c

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

4

2407

05.07.2011 14:53

v.tkac

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

Nacitanie dat z unl/txt suboru do oracle

v Databázy

8

1503

31.10.2008 20:08

El_locco



© 2005 - 2025 PCforum, edited by JanoF