Nacteni znaků ze suboru do řetezce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nacteni znaků ze suboru do řetezce – C / C++ – Fórum – Programujte.comNacteni znaků ze suboru do řetezce – C / C++ – Fórum – Programujte.com

 

Amater
~ Anonymní uživatel
8 příspěvků
4. 6. 2012   #1
-
0
-

Chlapi zdravím, pročetl jsem co se dalo, ale opravdu si sám už nevím rady. Proč se mi na výstupu ukazují nesmyslné znaky?

    #include <iostream>
     
    using namespace std;
     
     
    int main ()
    {
      FILE * abeceda;
      int charAbeceda;
      int counter1 = 0, i = 0;
      abeceda = fopen ("abeceda.txt","r");
      if (abeceda==NULL) perror("");
      else
      {
        while (fgetc (abeceda) != EOF)
            {
          counter1++;
            };
           
            char * poleAbeceda = new char[counter1];
           
            do {
          charAbeceda = fgetc (abeceda);                   
                    poleAbeceda[i] = charAbeceda;
                    i++;
            } while (charAbeceda != EOF);
           
           
           
            cout << counter1 << endl;
            for(int p=0; p<counter1; p++)
                            {
                                    cout << poleAbeceda[i] << endl;  
                            }
           
            fclose (abeceda);
       
      }
      return 0;
    }
Nahlásit jako SPAM
IP: 213.155.255.–
KIIV
~ Moderátor
+43
God of flame
4. 6. 2012   #2
-
0
-

namatkou to vypada ze v tom prvnim while spocitas vsechny znaky az narazis na EOF.-..  a pak nacitas dal.. na prvni znak hodis eof .. coz bude po odseknuti neco jako znak 255 (nebo -128) a pak vypisujes pole kam si nahral mozna tak prvni znak...

mimo to se da spocitat velikost souboru mnohem rychleji pomoci fseek a ftell nebo jak se tomu nadavalo .. nebo i fstat (viz: http://stackoverflow.com/questions/238603/how-can-i-get-a-files-size-in-c )

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Amater
~ Anonymní uživatel
8 příspěvků
4. 6. 2012   #3
-
0
-

Rozumim. A nejaky napad jak spocitat vsechny znaky v tom souboru a az pote je nacitat?

Nahlásit jako SPAM
IP: 213.155.255.–
Amater
~ Anonymní uživatel
8 příspěvků
4. 6. 2012   #4
-
0
-

Díky. Vyzkouším.

Nahlásit jako SPAM
IP: 213.155.255.–
cibule
~ Anonymní uživatel
100 příspěvků
4. 6. 2012   #5
-
0
-

#4 Amater
Nebo muzes to spocitat tak jak to delas v tom a pak mužes bud:

1.znovu soubor otevrit soubor a nacitat ty znaky

2. nebo pouzit funkci ktera nastavi pozici čtení v souboru na zacatek myslím že to je rewind()

Nahlásit jako SPAM
IP: 85.70.207.–
cibule
~ Anonymní uživatel
100 příspěvků
4. 6. 2012   #6
-
0
-

EDIT: ale tým fseek je to asi lepsi

Nahlásit jako SPAM
IP: 85.70.207.–
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, 82 hostů

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ý