Výpis ze souboru po slovech – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Výpis ze souboru po slovech – C / C++ – Fórum – Programujte.comVýpis ze souboru po slovech – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jirka
~ Anonymní uživatel
284 příspěvků
9. 12. 2010   #1
-
0
-

Zdravíčko,
mám menší problém. Nevím jak mám vypsat ze souboru slovo po slově, tak abych s tím slovem potom mohl pracovat jako s nějakým řetězcem. Jestli někdo víte, tak poraďte. Dík moc

Nahlásit jako SPAM
IP: 89.102.182.–
Reklama
Reklama
crAzY^
~ Moderátor
+10
Grafoman
9. 12. 2010   #2
-
0
-

vytvoříš objekt typu ifstream, a pak s ním pracuješ jako když to načítáš z klávesnice... čili:

#include <fstream>

...
ifstream fileIn("soubor.txt");
string slovo;
fileIn >> slovo;


jinak pouzivej google http://cplusplus.com/reference/iostream/ifstream/

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Jirka
~ Anonymní uživatel
284 příspěvků
9. 12. 2010   #3
-
0
-

To crAzY^ : Ať se snažím jak se snažím, tak to tvoje je mi nějak nejede. V céčku jsem zatím jenom začátečník.

Nahlásit jako SPAM
IP: 89.102.182.–
crAzY^
~ Moderátor
+10
Grafoman
9. 12. 2010   #4
-
0
-

ty jsi to chtěl v C? no napsal jsem ti to v C++

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
11. 12. 2010   #5
-
0
-

To crAzY^ : Tak jsem zkusil tuto možnost, ale bohužel bez výsledku. Předpokládám, že v RETAZEC je daná věta na rozkouskování.



char slovo[100];
int i = 0;
int m=0;
char *p = slovo;
b=strlen(retazec);
for(g=0;g<b;g++)
{
retazec[i++];
while (retazec[i] && retazec[i] != ' ' && p - slovo < sizeof(slovo) - 1)
{
*p++ = retazec[i++];
}
*p = 0;
printf("%s",slovo);
memset(slovo,' ', 100);
//system("pause");
if (retazec[i]='\0') g=b;
}


ale bez výsledku

Nahlásit jako SPAM
IP: 89.102.182.–
devilfish0
Stálý člen
11. 12. 2010   #6
-
0
-

Môžeš použiť



fscanf(f,"%s",slovo);

lebo fscanf vynechá všetky biele znaky pred znakmi a číta len po prvý biely znak

Nahlásit jako SPAM
IP: 188.121.172.–
m->29+6
Super člen
12. 12. 2010   #7
-
0
-

Noo, to by si si zariadil niekedy pekný buffer overflow. keď tak takto:

char slovo[128];

fscanf(f,"%127s",slovo);

Nahlásit jako SPAM
IP: 83.208.112.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
14. 12. 2010   #8
-
0
-

To m->29 : Tak stále se nedaří. Proto bych se chtěl zeptat, jestli by se nenašel někdo, kdo by byl schopný mi udělat jednoduchý prográmek. Dejme tomu, že mám soubor ahoj.txt, a v něm nějaký text. A já bych potřeboval tento text načítat do nějakého řetězce, třeba RETEZEC po slovech. Neboli, načtu první slovo, vypíšu a do RETEZCE načtu druhé slovo a vypíšu. Druhé slovo už bude vypsané bez prvního. Našel by se někdo, kdo by to zvládl? Dík moc

Nahlásit jako SPAM
IP: 89.102.182.–
crAzY^
~ Moderátor
+10
Grafoman
14. 12. 2010   #9
-
0
-

tak mohlo by to vypadat třeba takto:

#include <stdio.h>


int main(void)
{
FILE *fp = fopen("ahoj.txt", "r");

char word_buffer[50];

while(fscanf(fp, "%49s", word_buffer) != EOF){

printf("%s ", word_buffer);

}

fclose(fp);

return 0;
}

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
14. 12. 2010   #10
-
0
-

To crAzY^ : No já nad tím sedím už týden a nic. :-D Dík moc. Jestli se mi ten program podaří rozjet, tak tě pozvu aj na pivo.

Nahlásit jako SPAM
IP: 89.102.182.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
15. 12. 2010   #11
-
0
-

To Anonymní uživatel : Prosím a můžu mít dotaz? Co to znamená v tomto kódu:

while(fscanf(fp, "%49s", word_buffer) != EOF)

to "%49s" ???

Nahlásit jako SPAM
IP: 89.102.182.–
crAzY^
~ Moderátor
+10
Grafoman
15. 12. 2010   #12
-
0
-

je to to samý jako %s, akorát s omezením, že to načte maximálně 49 znaků dlouhý řetězec, aby se zamezilo přetečení bufferu (toho word_buffer[50])

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
15. 12. 2010   #13
-
0
-

To crAzY^ : Ok. Dík moc

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

Podobná vlákna

C# - Cteni textu po slovech — založil Arevyhs

Vypis do souboru — založil Franceq

Výpis ze souboru — založil Jirka

Výpis do souboru — založil Kotrfa

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý