C Čtení ze souboru do konzole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C Čtení ze souboru do konzole – C / C++ – Fórum – Programujte.comC Čtení ze souboru do konzole – C / C++ – Fórum – Programujte.com

 

honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #1
-
0
-

Zdravím, potřeboval bych poradit. pokouším se asi 3 hodiny přečíst text z textového souboru do konsole ale neuspěšně.

Podařilo se mně přečíst max. jeden řádek. ale já tam mám ty řádky 4 

Nemohl by mě sem někdo hodit zdroják?

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #2
-
0
-

hod sem svuj zdrojak a upresni co tim myslis... sic to tu tak nekdy nevypada, ale trivialni domaci ukoly jsou kvuli tomu, aby se neco naucil ten kdo je ma udelat... my to tu samozrejme zvladneme v pohode

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

Jelikož se mě to nedařilo tak sem zkoušel zdrojáky z netu, ale stejně mě to nějak nešlo jak by mělo.

Abych tu nedával cizí zdrojáky tak vložím svůj ŠPATNÝ, potřebuju teda poradit kde mám chybu, nevypisuje to nic. představuju si že to bude načítat znak po znaku a vypisovat do konzole.

#include <iostream>

using namespace std;

int main()
{
char znak;
FILE *f=fopen("soubor.txt","r");
if (f!=NULL){
while(fgetc(f)!=EOF)
{
  cout << fgetc(f);
 
}
fclose(f);
}
return 0;
}

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #4
-
0
-

proc michas nacitani v C a vypis v C++?

existuje knihovna <fstream> a ta umi otevrit soubor a nacitat (kdyz uz ses v tom c++)

+ fgetc(f)!=EOF  te pripravi o kazdej druhej znak protoze taky nacita akorat to nikde nepouzijes

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #5
-
0
-

aha, no snažím se dělat v cčku, řekl bych že z c++ je tam pouze příkaz cout, ale sem nováček tak se možná pletu. Jak to udělám v cčku? a v čem mám chybu?

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #6
-
0
-

c nezna nic jako <iostream>, namespace taky ne, ...

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #7
-
0
-

šlo by to bez toho aniž bych tam míchal další knihovny? nebo nevíte o nějakém webu kde je zdroják který by mě to vyřešil? já to sám dohromady nedám

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #8
-
0
-

minimalne stdio.h potrebovat budes

a je to tak trivialni ze to snad ani nestoji za to vykradat to z netu...  (krom toho ze se pak vubec nic nenaucis)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #9
-
0
-

tak naučím se to z toho, kdyby mě něko ukázal jak se to dělá. Kdybych alespoň znal ty příkazy věděl ze kterých knihoven jsou a co dělají, pak bych to dohromady možná dal, ale takto fakt nevím. Jak to mám dát dohromady když neznám ty příkazy? kde najdu seznam příkazů + popis co dělají a jak fungují?

Nahlásit jako SPAM
IP: 79.127.196.–
ingiraxo+15
Grafoman
11. 11. 2012   #10
-
0
-
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #11
-
0
-

Po půl hodince sem dal dohromady následující kód.  Zjistil sem že je skoro stejný jak můj předchozí s tím rozdílem, že už něco vypisuje, ale  jak už mě tady někdo psal vypíše to pouze každý druhý znak. Jak je to možné? proč to nevypíše každý? co mám zase špatně?
 

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char buffer[500]; 
    FILE *fp = fopen("soubor.txt", "r");

    if (fp == NULL) {
        perror("Failed to open file \"soubor\"");
        return 0;
    }
while(getc(fp) != EOF)
{
  printf("%c", getc(fp));
}
 

    fclose(fp);

    return 0;
}

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #12
-
0
-

psal sem dokonce i proc vypise kazdy druhy znak...

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #13
-
0
-

aha, já to předtím nepochopil. tak sem to teď upravil takto, ale místo těch správných znaků co jsou v souboru to vypisuje smajlíky

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;


int main(void)
{

    char buffer;
    FILE *fp = fopen("soubor.txt", "r");

    if (fp == NULL) {
        perror("Failed to open file \"soubor\"");
        return 0;
    }
while(buffer = getc(fp) != EOF)
{
  printf("%c", buffer);
}
 

    fclose(fp);

    return 0;
}

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #14
-
0
-

no getc vraci int ... protoze bys jinak nemel zadnou moznost rozpoznat EOF od platnych znaku...

+ potrebujes presne rict co se ma udelat prvni a pak az srovnat... protoze  = ma mensi prioritu nez  !=   v bufferu mas pak 0/1 jen

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
honza
~ Anonymní uživatel
451 příspěvků
11. 11. 2012   #15
-
0
-

jo výborně :D konečně to mám :D tak díky za rady (ale mohli jste mně dát rovnou zdroják)

Přikládám funkční zdroják, jen asi některé ty knihovny nejsou potřeba

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;


int main(void)
{

    char buffer;  /* initialized to zero1es */
    FILE *fp = fopen("soubor.txt", "r");

    if (fp == NULL) {
        perror("Failed to open file \"soubor\"");
        return 0;
    }
while((buffer = getc(fp)) != EOF)
{
  printf("%c", buffer);
}
 

    fclose(fp);

    return 0;
}

Nahlásit jako SPAM
IP: 79.127.196.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2012   #16
-
0
-

a ceho bysme tim dosahli? (krom toho ten buffer ti zustal furt jako char ne int... nemohl bys s tim zpracovat binarni soubory.. )

takhle ses s tim musel vyporadat sam a treba ti to aspon neco malo da.. ale furt vic nez sem dat kod .. to by ti dalo akorat asociaci "tady to za me vzdy nekdo udela"

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
coltman
~ Anonymní uživatel
1 příspěvek
12. 12. 2012   #17
-
0
-

Potřebuju poradit. načítám ze souboru pomocí zdrojáku co sem tu našel a chtěl bych pak slovo po slově vytisknout a nastavit u každého slova šířku buňky 10 pomocí setw(10) Ale nějak nevím jak to udělat, protože načítám písmenko po písmenku. Jde to nějak ohraničit, Třeba když narazím na mezeru (konec slova) tak že to bude konec buňky ?

Nahlásit jako SPAM
IP: 2001:718:1001:700:200:5ef...–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2012   #18
-
0
-

tak budes nacitat znaky a jak narazis na mezeru tak retezec ukoncis a vypises (a vyprazdnis)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 101 hostů

Podobná vlákna

čtení ze souboru — založil witsarah

Cteni ze souboru — založil Mory

čtení ze souboru — založil Roman

Cteni souboru. — založil ewzen

Čtení souboru ve VB — založil hansk

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ý